C/C++-Windows平台Win32编程-Windows API-WinMain

WinMain

 

Windows平台下Win32应用程序的入口, 就类似C/C++的入口函数int main(int argc, char*  argv[]).

 

该入口函数原型定义在WINBASE.H头文件中定义如下:

#ifndef _MAC
int
WINAPI
#else
int
CALLBACK
#endif
WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nShowCmd
    );

 

Parameters

hInstance [in]

Type: HINSTANCE

A handle to the current instance of the application.

hPrevInstance [in]

Type: HINSTANCE

A handle to the previous instance of the application. This parameter is always NULL . If you need to detect whether another instance already exists, create a uniquely named mutex using the CreateMutex function. CreateMutex will succeed even if the mutex already exists, but the function will return ERROR_ALREADY_EXISTS . This indicates that another instance of your application exists, because it created the mutex first. However, a malicious user can create this mutex before you do and prevent your application from starting. To prevent this situation, create a randomly named mutex and store the name so that it can only be obtained by an authorized user. Alternatively, you can use a file for this purpose. To limit your application to one instance per user, create a locked file in the user's profile directory.

lpCmdLine [in]

Type: LPSTR

The command line for the application, excluding the program name. To retrieve the entire command line, use the GetCommandLine function.

nCmdShow [in]

Type: int

Controls how the window is to be shown. This parameter can be one of the following values.

ValueMeaning
SW_HIDE 0

Hides the window and activates another window.

SW_MAXIMIZE 3

Maximizes the specified window.

SW_MINIMIZE 6

Minimizes the specified window and activates the next top-level window in the Z order.

SW_RESTORE 9

Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.

SW_SHOW 5

Activates the window and displays it in its current size and position.

SW_SHOWMAXIMIZED 3

Activates the window and displays it as a maximized window.

SW_SHOWMINIMIZED 2

Activates the window and displays it as a minimized window.

SW_SHOWMINNOACTIVE 7

Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED , except the window is not activated.

SW_SHOWNA 8

Displays the window in its current size and position. This value is similar to SW_SHOW , except the window is not activated.

SW_SHOWNOACTIVATE 4

Displays a window in its most recent size and position. This value is similar to SW_SHOWNORMAL , except the window is not activated.

SW_SHOWNORMAL 1

Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

 

Return value

Type:

Type: int

If the function succeeds, terminating when it receives a WM_QUIT message, it should return the exit value contained in that message's wParam parameter. If the function terminates before entering the message loop, it should return zero.

Remarks

The name WinMain is used by convention by many programming frameworks. Depending on the programming framework, the call to the WinMain function can be preceded and followed by additional activities specific to that framework.

Your WinMain should initialize the application, display its main window, and enter a message retrieval-and-dispatch loop that is the top-level control structure for the remainder of the application's execution. Terminate the message loop when it receives a WM_QUIT message. At that point, your WinMain should exit the application, returning the value passed in the WM_QUIT message's wParam parameter. If WM_QUIT was received as a result of calling PostQuitMessage , the value of wParam is the value of the PostQuitMessage function's nExitCode parameter. For more information, see Creating a Message Loop .

ANSI applications can use the lpCmdLine parameter of the WinMain function to access the command-line string, excluding the program name. Note that lpCmdLine uses the LPSTR data type instead of the LPTSTR data type. This means that WinMain cannot be used by Unicode programs. The GetCommandLineW function can be used to obtain the command line as a Unicode string. Some programming frameworks might provide an alternative entry point that provides a Unicode command line. For example, the Microsoft Visual Studio C++ complier uses the name wWinMain for the Unicode entry point.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Winbase.h (include Windows.h)

有关WinMain入口函数可参考http://msdn.microsoft.com/en-us/library/ms633559%28VS.85%29.aspx

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值