MASM32 не узнает функции?

Тема в разделе "WASM.BEGINNERS", создана пользователем Dimon, 23 авг 2006.

  1. Dimon

    Dimon New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2006
    Сообщения:
    9
    Всем привет!

    При компилировании MASM ругается на следующие строчки:
    пишет error A2006: undefined symbol : MAKEINTRESOURCE
    пишет error A2006: undefined symbol : DialogBox

    С чего бы это? Все библиотеки и инклуды вроде подключены...
     
  2. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    это сишный макрос, если не ошибаюсь

    а user32.lib/user32.inc точно подключены к проекту?
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    DialogBox, если не ошибаюсь, - это тоже сишный макрос. DialogBoxParam вызывать надо с последним параметром - 0 (или NULL).
     
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    winuser.h:
    Код (Text):
    1. #define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
    2. #define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
    3. #ifdef UNICODE
    4. #define MAKEINTRESOURCE  MAKEINTRESOURCEW
    5. #else
    6. #define MAKEINTRESOURCE  MAKEINTRESOURCEA
    7. #endif // !UNICODE
    Т.е просто приводит int к char*. В асме подобное, естественно, делать не надо.

    А вот и DialogBox:
    Код (Text):
    1. #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
    2. DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
    3. #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
    4. DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
    5. #ifdef UNICODE
    6. #define DialogBox  DialogBoxW
    7. #else
    8. #define DialogBox  DialogBoxA
    9. #endif // !UNICODE
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Сначала обрезает до ворда. То есть, "защита" от больших идентификаторов.
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    IceStudent
    Угу. Большие идентификаторы воспринимаются ресурсными функциями как указатели. Поэтому идентификаторы должны умещаться в ворд.