1
我遇到这个问题:错误:未申报LOWORD
LOWORD未申报
与这段代码:
case WM_COMMAND:
{
if (lParam==0)
{
if ((LOWORD)wParam==IDM_HELLO)
MessageBox(0, L"Hello", (LPCSTR)szClassName, MB_OK);
}
break;
}
我不知道我的损失。任何人都帮助我?
'LOWORD'是一个“函数”宏。我保证你投给'LPCSTR'会把你的文字搞砸。 – chris
您使用'LOWORD'就好像它是您可以投入的类型一样,就像'DWORD'让我微笑......这是我在20年前开始使用WinAPI时会犯的一种错误,很久以前有像这样的互联网网站可以提供帮助。进步是美好的。这是一个宏,如果你想知道 - 它会给你一个DWORD的低位字节。 –
@chris,当你使用函数宏作为对象时,它基本上根本不被识别。你没有得到一个函数宏被错误使用的诊断。例如,这允许'(getchar)()'调用真正的C函数而不是宏(如果有的话),而不必'#undef getchar'。 – Kaz