您能否向我解释一下WinMain()
函数末尾写的这句话的重要性:
return (int) msg.wParam;
我习惯用return 0;
来结束我的控制台应用程序对于Windows应用程序是错误的吗?
谢谢。
答案 0 :(得分:3)
GetMessage()
循环在收到WM_QUIT
窗口消息后停止,该消息通常在调用PostQuitMessage()
函数后发出,该函数将nExitCode
参数描述为应用程序退出代码。
如果您想尊重调用PostQuitMessage()
函数的人的意图,您应该从main返回该值。当您返回从wParam
的上次调用中检索到的GetMessage()
时,您正在执行此操作。
答案 1 :(得分:2)
来自WinMain()
文档(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559.aspx):
收到
WM_QUIT
消息时终止消息循环。在那 点,您的WinMain
应该退出应用程序,返回值 传递了WM_QUIT
消息的wParam
参数。如果是WM_QUIT
因调用PostQuitMessage
而收到wParam
的值 是PostQuitMessage
函数的nExitCode
参数的值。
答案 2 :(得分:2)
来自the first hit of a Google search
您的WinMain应初始化应用程序,显示其主要内容 窗口,并输入一个消息检索和分派循环 应用程序其余部分的顶级控制结构 执行。收到WM_QUIT时终止消息循环 信息。此时,您的WinMain应该退出应用程序, 返回WM_QUIT消息的wParam参数中传递的值。 如果因调用PostQuitMessage而收到WM_QUIT,则 wParam的值是PostQuitMessage函数的值 nExitCode参数。有关更多信息,请参阅创建消息 循环。