您能给我解释一下通常写在WinMain()函数末尾的这句话的意义吗:
return (int) msg.wParam;我习惯于用return 0;结束我的控制台应用程序,这对windows应用程序来说是错误的吗?
谢谢。
发布于 2011-12-22 06:06:24
GetMessage()循环在收到WM_QUIT窗口消息后停止,该消息通常是在调用PostQuitMessage()函数之后发出的,该函数将其nExitCode参数描述为应用程序退出代码。
如果您希望尊重调用PostQuitMessage()函数的人的意图,则应该从main返回该值。这就是当您返回从最后一次GetMessage()调用中检索到的wParam时所做的事情。
发布于 2011-12-22 06:04:06
从WinMain()文档(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559.aspx):
在收到
WM_QUIT消息时终止消息循环。此时,您的WinMain应该退出应用程序,返回在WM_QUIT消息的wParam参数中传递的值。如果由于调用PostQuitMessage而收到WM_QUIT,则wParam的值是PostQuitMessage函数的nExitCode参数的值。
发布于 2011-12-22 06:05:20
来自the first hit of a Google search
您的WinMain应该初始化应用程序,显示其主窗口,并进入消息检索和分派循环,该循环是应用程序其余执行部分的顶级控制结构。在收到WM_QUIT消息时终止消息循环。此时,您的WinMain应该退出应用程序,返回在WM_QUIT消息的wParam参数中传递的值。如果由于调用PostQuitMessage而收到WM_QUIT,则wParam的值是PostQuitMessage函数的nExitCode参数的值。有关详细信息,请参阅创建消息循环。
https://stackoverflow.com/questions/8596967
复制相似问题