1

能否请您向我解释一下一般写在WinMain()函数末尾的这句话的意义:

   return (int) msg.wParam;

我习惯于用 Windows 应用程序来结束我的控制台应用程序return 0;是错误的吗?

谢谢你。

4

3 回答 3

3

循环在接收到通常在调用函数后发出GetMessage()的窗口消息后停止,该函数将其参数描述为应用程序退出代码WM_QUITPostQuitMessage()nExitCode

如果你想尊重调用函数的人的意图PostQuitMessage(),你应该从 main 返回那个值。当您返回wParam从最后一次调用中检索到的GetMessage().

于 2011-12-21T22:06:23.500 回答
2

WinMain()文档(http://msdn.microsoft.com/en-us/library/windows/desktop/ms633559.aspx):

收到WM_QUIT消息时终止消息循环。此时,您WinMain应该退出应用程序,返回WM_QUIT消息wParam参数中传递的值。如果WM_QUIT作为调用的结果接收到PostQuitMessagewParam 则 的值是PostQuitMessage函数nExitCode参数的值。

于 2011-12-21T22:04:05.920 回答
2

Google 搜索的第一次点击开始

您的 WinMain 应该初始化应用程序,显示其主窗口,并进入一个消息检索和分发循环,该循环是应用程序执行其余部分的顶级控制结构。当收到 WM_QUIT 消息时终止消息循环。此时,您的 WinMain 应该退出应用程序,返回在 WM_QUIT 消息的 wParam 参数中传递的值。如果作为调用 PostQuitMessage 的结果接收到 WM_QUIT,则 wParam 的值是 PostQuitMessage 函数的 nExitCode 参数的值。有关更多信息,请参阅创建消息循环。

于 2011-12-21T22:05:20.363 回答