我正在学习有关C++和编程的Windows API。我的第一个“Hello Windows API”程序只是显示一个MessageBox()。但是,我有问题,我正在阅读的这本书没有解释。WinMain()声明中发生了什么?
首先,这里的程序:
// HelloWin32 Program
#include<Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, "This gets displayed in the message.", "This is the title bar of the message dialog.", MB_OK | MB_ICONEXCLAMATION);
}
这编译并运行良好。我的问题与代表int WINAPI WinMain(...)
的WinMain()声明有关。当我读它时,WinMain函数(方法?)返回一个整数。但是WINAPI
与什么沟通?
很显然,我写的Windows API。 WINAPI
以某种方式标记函数,以便程序使用Windows API执行它或什么?
它是非常重要,我理解不同的调用约定?我从来没有遇到过他们(我从C#开始)。 – quakkels 2012-02-04 21:00:05
@quakkels它是非常好的,但不是绝对必要知道。如果你研究过生成的C++程序集,就有必要了解调用约定,否则它可以看作是实现细节(隐藏在“WINAPI”预处理器定义之后)。可能(虽然我没有证据),很多C++程序员在不知道调用约定的情况下编写精美的程序。尽管知道更多关于事情如何在底下工作的东西永远不是一件坏事:) – 2012-02-04 21:01:26