【发布时间】:2010-03-07 21:10:26
【问题描述】:
我刚开始学习 c++ 中的 windows 编程。我有一个疯狂的形象,win32 编程是基于调用 windows 函数并从它们发送参数。就像,当你想创建窗口时,你调用一些处理 windows GUI 的 win32 函数并说“嗨,请给我创建一个新窗口,100 x 100 像素,有两个按钮”,然后那个 GUI 函数说“嗨,没问题,当发生某些事情时,例如用户单击一个按钮,我将更改位于此位置的变量 xy”。
所以,我认为它与控制台编程非常相似。但是第一条指令让我感到惊讶。我一直认为每个程序都会先执行 main() 函数。因此,当我启动应用程序时,Windows 会在堆栈顶部存储一些参数并运行该应用程序。所以我假设初始化 main() 只是一种 C++ 方法来告诉编译器第一条指令应该在哪里。
但是在 win32 编程中,有一个名为 WinMain() 的函数首先启动。所以我有点困惑。我认为编译器必须以 main() 开头的规则,main 只是定义它的开始位置,例如一些起点标识符。
那么,请问为什么有 WinMain() 函数而不是 main()?当我认为 C++ 编程与汇编程序一样合乎逻辑时,它再次让我感到困惑。
【问题讨论】:
-
您可以拥有一个以
main()开头的Win32 程序。控制台程序执行此操作。 -
哦,你可能想把这片铅海分解成段落。
-
没有
winmain,有WinMain。 -
@sbi,你把最后一条评论从我的指尖拿走了。
-
@avakar:我刚刚长大,看到这样的东西会感到眼睛酸痛。当我年轻的时候,我遇到了比这些更糟糕的问题......
:)