【问题标题】:winmain() function / c++winmain() 函数 / C++
【发布时间】:2011-12-21 22:01:09
【问题描述】:

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

   return (int) msg.wParam;

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

谢谢。

【问题讨论】:

  • 是的,您想返回传递给 PostQuitMessage() 的值。
  • 好的,但为什么会有(int)?是某种将 wParam 转换为整数的方式吗?
  • 还是让编译器清楚?
  • wParam 不是 int,需要强制转换。

标签: c++ return-value winmain


【解决方案1】:

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

如果你想尊重调用 PostQuitMessage() 函数的人的意图,你应该从 main 返回那个值。这就是您返回从上次调用 GetMessage() 检索到的 wParam 时所做的事情。

【讨论】:

    【解决方案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 参数的值。

    【讨论】:

      【解决方案3】:

      来自the first hit of a Google search

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-01
        • 2020-08-31
        • 2013-07-27
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        相关资源
        最近更新 更多