WinMain函数

来源:互联网 发布:java. 线程通信 编辑:程序博客网 时间:2024/05/01 02:56

WinMain是一个函数,该函数的功能是被系统调用,作为一个Win32程序的入口点。WinMain函数应初始化程用程序,显示主窗体,进入一个消息接受发送循环,这个循环是应用程序执行的其余部分的顶层控制结构。

int WINAPI WinMain (    _In_ HINSTANCE hInstance,    _In_opt_ HINSTANCE hPrevInstance,    _In_ LPSTR lpCmdLine,    _In_ int nShowCmd    );

hInstance:应用程序当前实例的句柄

hPrevInstance:应用程序先前实例的句柄。对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个Win32程序而言,该参数总是为null。因而在Win32下不能通过判断hPrevInstance是否为空来判断一个程序的另一个实例是否存在,要用其他方法。

如果需要检测另外一个实例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回ERROR_ALREADY_EXISTS,这就表明应用程序有另外一个实例存在,因此它首先创建了互斥名。

lpCmdLine:指向应用程序命令行的字符串指针,不包括执行文件名。获得整个命令行,参见GetCommandLine。

nShowCmd:指明窗口如何显示。exe快捷方式有个选项指定窗口运行方式,或者在CreateProcess中都可以设置。

0 0
原创粉丝点击