SDK学习笔记-WinMain()

    xiaoxiao2021-12-14  21

    在Windows应用程序中main()被WinMain()取代

    #define APIENTRY WINAPI int APIENTRY WinMain(HINSTANCE hInstance, //当前实例句柄 HINSTANCE hPrevInstance, //上一个实例句柄 LPSTR lpCmdLine,//传递给应用程序的参数字符串 int nCmdShow); //窗口显示状态

    WinMain函数接收4个参数,这些参数都是在系统调用WinMain函数时,传递给应用程序的。 1.hInstance表示该程序当前运行的实例的句柄,这是一个数值。当程序在Windows下运行时,它唯一标识运行中的实例(注意,只有运行中的程序实例,才有实例句柄)。一个应用程序可以运行多个实例,每运行一个实例,系统都会给该实例分配一个句柄值,并通过hInstance参数传递给WinMain函数。 2.hPrevInstance表示当前实例的前一个实例的句柄。通过查看MSDN我们可以知道,在Win32环境下,这个参数总是NULL,即在Win32环境下,这个参数不再起作用。 《关于Win32的winMain函数的hPrevInstance参数》 http://blog.csdn.net/a8572785/article/details/8204741 3.lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。例如:在D盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将D:\sunxin.txt作为命令行参数传递给记事本程序的WinMain函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。要在VC++开发环境中向应用程序传递参数,可以单击菜单【Project】→【Settings】,选择“Debug”选项卡,在“Program arguments”编辑框中输入你想传递给应用程序的参数。 4.nCmdShow指定程序的窗口应该如何显示,例如最大化、最小化、隐藏等。这个参数的值由该程序的调用者所指定,应用程序通常不需要去理会这个参数的值。

    转载请注明原文地址: https://ju.6miu.com/read-971184.html

    最新回复(0)