0
當我嘗試使用HANDLE_MSG宏在我的窗口過程中,我得到以下錯誤:HANDLE_MSG宏給了「HANDLE_0xXXXX未定義」
Error: identifier "HANDLE_0xXXXX" is undefined
其中0xXXXX月要看我給作爲參數傳遞給了什麼樣的信息宏(WM_CLOSE爲0x0010,WM_DESTROY爲0x0002等)。
我一直沒有發現關於類似問題的提及,同時搜索幫助。
我使用Visual Studio 2013預覽版Windows桌面上的Windows 8
(雖然同樣發生在2012 VS Express的WD)的代碼段:
#include "Precompiled Headers.hpp" // includes i. a. Windows.h and windowsx.h
#include "MainWindowProcedure.hpp"
LRESULT __stdcall MainWindowProcedure(HWND mainWindow,
UINT receivedMessage,
WPARAM wordParameter,
LPARAM longParameter)
{
switch (receivedMessage)
{
HANDLE_MSG(mainWindow, WM_CLOSE, MainWindowOnClose);
...
default:
return DefWindowProc(mainWindow,
receivedMessage,
wParam,
lParam);
break;
}
return 0;
}
void MainWindowOnClose(HWND mainWindow)
{
DestroyWindow(mainWindow);
}
'HANDLE_MSG'在'windowsx.h'中定義。你確定你通過你的.hpp包含它嗎? – simonc
它看起來像'WM_CLOSE'宏在'HANDLE_MSG'宏之前展開。 'Precompiled Headers.hpp'中的'#include'命令可能存在一些問題。發佈此文件內容,或者只是嘗試更改包含行的順序。 –
其實,包含行的順序並不重要。預處理器中的錯誤? HANDLE_MSG宏如何在您的計算機上的windowsx.h中定義,您可以發佈它的定義嗎? –