Windows编程之WinMain——应用的入口

每个Windows程序都有一个入口函数,命名为WinMain或wWinMain。其定义如下:

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);

我们先分别认识一下方法中的四个参数。

hInstance:可以理解为程序实例的handle。当程序装入内存中时,操作系统需要利用这个值来标识exe。

hPreInstance:没什么意义,其用在16位Windows中,现如今其值通常都是0。

pCmdLine:包含了命令行参数,该参数为Unicode字符串形式。

nCmdShow:一个标志,表明窗口是否要最大化,最小化,或者是正常显示。

该函数返回一个int 类型的值,操作系统并不会用这个返回值,但是我们在写程序的时候可以利用这个值来获知状态。

WINAPI是一个调用惯例,它定义了函数如何从调用者中接收参数。例如,它定义了参数出现在堆栈上的顺序。记住声明函数的时候,写法要同上述代码形式一样就可以了。

WinMain和wWinMain函数是相同的,除非命令行参数的编码方式为ANSI。Unicode编码方式是优先选取的,当你的编译环境为Unicode时,也可以用ANSI WinMain函数。想要获得Unicode编码的命令行参数,可以调用GetCommandLine函数。

原文链接:https://docs.microsoft.com/zh-cn/windows/desktop/LearnWin32/winmain--the-application-entry-point

你可能感兴趣的:(c++)