每个程序都有一个入口,WinMain函数是Windows应用程序的入口程序。他的参数如下。
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
return 0;
}
HInstance是一个用来指向应用程序实例信息的指针
第一个HInstance参数hInstance指向当前应用程序实例的信息。
第二个HInstance参数hPrevInstance指向先前应用程序实例的信息,值得注意的是这个参数总是为NULL。不知道这个参数到底能派上什么用,所以就挺迷的。
第三个LPSTR参数用来接收程序开始运行时,用户通过控制台端输入的额外参数。该参数能够将一个命令行接收为一个特定类型(LPSTR)的字符串。其实仔细一想,C/C++的main函数也有类似的参数。
第四个int参数用来决定我们这个程序的窗体用何种方法展示出来。比如说传入0(预处理宏为:SW_HIDE)的意思为:隐藏当前窗体并打开另一个窗体。具体有那些方式可以参考微软的MSDN。
在函数名WinMain前方还有一个CALLBACK。CALLBACK是函数修饰符,他的作用是告诉C++这个函数要用一个叫stdcall的调用约定。这个调用约定使得函数在栈上传递参数的方法与标准C的调用约定(cdecl)略有不同。WindowsAPI使用的应该都是stdcall调用约定。