我刚开始学习 c++ 中的 windows 编程。我有一个疯狂的形象,win32 编程是基于调用 windows 函数并从它们发送参数。就像,当你想创建窗口时,你调用一些处理 windows GUI 的 win32 函数并说“嗨,请给我创建一个新窗口,100 x 100 像素,有两个按钮”,然后那个 GUI 函数说“嗨,没问题,当发生某些事情时,例如用户单击一个按钮,我将更改位于此位置的变量 xy”。
所以,我认为它与控制台编程非常相似。但是第一条指令让我感到惊讶。我一直认为每个程序都会先执行 main() 函数。因此,当我启动应用程序时,Windows 会在堆栈顶部存储一些参数并运行该应用程序。所以我假设初始化 main() 只是一种 C++ 方法来告诉编译器第一条指令应该在哪里。
但是在 win32 编程中,有一个名为 WinMain() 的函数首先启动。所以我有点困惑。我认为编译器必须以 main() 开头的规则,main 只是定义它的开始位置,比如一些起点标识符。
那么,请问为什么有 WinMain() 函数而不是 main()?当我认为 C++ 编程与汇编程序一样合乎逻辑时,它再次让我感到困惑。