关于C ++ return语句/ Win32 API

时间:2012-04-13 19:24:10

标签: c++ winapi

我一直在看这个教程: http://msdn.microsoft.com/en-us/library/bb384843.aspx,但我真的很困惑。

MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

return (int) msg.wParam;

我不知道他们回到那里做了什么。我知道返回仅适用于一个值。为什么有2件事?我查看了其他教程,他们似乎都使用return msg.wParam;

3 个答案:

答案 0 :(得分:3)

它将msg.wParam的值转换为int。正如您在函数声明中看到的那样:

int WINAPI WinMain(HINSTANCE hInstance,
               HINSTANCE hPrevInstance,
               LPSTR lpCmdLine,
               int nCmdShow)

返回类型为int。我不确切知道属性wParam的类型是什么,但它可能不是int,所以它必须显式地转换为int或者它不会编译。

答案 1 :(得分:0)

该代码可能是返回int的函数的一部分。由于msg.wParam无法隐式转换为int,因此需要进行显式转换。它基本上等同于:

int ret = (int)msg.wParam;
return ret;

答案 2 :(得分:0)

为什么有两件事

没有两件事:只有wParam变量的msg字段(MSG类型struct)转换为int }。