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