我一直在看这个教程: 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;
答案 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
}。