Всем привет! При компилировании MASM ругается на следующие строчки: пишет error A2006: undefined symbol : MAKEINTRESOURCE пишет error A2006: undefined symbol : DialogBox С чего бы это? Все библиотеки и инклуды вроде подключены...
DialogBox, если не ошибаюсь, - это тоже сишный макрос. DialogBoxParam вызывать надо с последним параметром - 0 (или NULL).
winuser.h: Код (Text): #define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i))) #define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i))) #ifdef UNICODE #define MAKEINTRESOURCE MAKEINTRESOURCEW #else #define MAKEINTRESOURCE MAKEINTRESOURCEA #endif // !UNICODE Т.е просто приводит int к char*. В асме подобное, естественно, делать не надо. А вот и DialogBox: Код (Text): #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) #ifdef UNICODE #define DialogBox DialogBoxW #else #define DialogBox DialogBoxA #endif // !UNICODE
IceStudent Угу. Большие идентификаторы воспринимаются ресурсными функциями как указатели. Поэтому идентификаторы должны умещаться в ворд.