WinMain的返回值

时间:2017-03-28 04:19:29

标签: c++ windows winapi

总而言之,我有一个关于WinMain的问题。在VS2010中,_tWinMain的返回值是"(int)msg.wParam"。我不明白为什么它会返回wParam。

什么是wParam?我可以将其更改为"返回0"?

2 个答案:

答案 0 :(得分:1)

WM_QUIT处理GetMessage时,它会终止消息循环。 WM_QUIT的文档说明了这一点:

  

<强>的wParam

     

PostQuitMessage函数中给出的退出代码。

这是您从WinMain返回的值。因此,此值只是作为退出代码传递给PostQuitMessage的值。

您可以更改代码以返回您想要的任何内容,如果您愿意,则返回零。但是,在正常终止时,PostQuitMessage将被传递为零,因此通过进行此类更改无法获得任何好处。

答案 1 :(得分:0)

WinMain返回的

值将按原样传递给ExitProcess函数。 c / c ++运行时或ExitProcess本身不解释并使用 uExitCode - 所以你可以使用绝对任何值(只能返回STILL_ACTIVE不好但是甚至不返回它错误) - 这是您的应用程序,您需要自己决定需要返回的代码。此代码可以通过调用GetExitCodeProcess检索另一个应用程序 - 并以某种方式解释它,如果 uExitCode 来自包含某些信息的应用程序(通常将其用作错误代码,0表示没有错误)。但是在大多数情况下 uExitCode 不包含任何信息,并且在返回代码中没有人感兴趣 - 所以绝对没有什么不同,你返回的是什么值。当然也可以返回msg.wParam,但没有比返回0或说__LINE__

更有意义