win32api из ассемблера
От: stas-rw  
Дата: 18.03.03 22:58
Оценка:
проблема такая: из асма вызвать библиотеку трудность не большая, но как задать конкрктные свойства? Например messagebox:
...
push xx ; свойства окна
push st1
push st2
push NN ; дискриптор окна
CALL MessageBoxA
...
Так вот проблема в том что описаний свойств окна куча но какой конкретно бит какому свойству соответствует нигде не сказано. может я не правильно чтото понял?...
Re: win32api из ассемблера
От: Алексей Владимирович Миронов Россия  
Дата: 19.03.03 01:27
Оценка:
Здравствуйте, stas-rw, Вы писали:

SR>проблема такая: из асма вызвать библиотеку трудность не большая, но как задать конкрктные свойства? Например messagebox:


<>

SR>Так вот проблема в том что описаний свойств окна куча но какой конкретно бит какому свойству соответствует нигде не сказано. может я не правильно чтото понял?...


Загляните в соответствующий header Visual C++/Platform SDK или что там у Вас:

// WinUser.h

#define MB_OK                       0x00000000L
#define MB_OKCANCEL                 0x00000001L
#define MB_ABORTRETRYIGNORE         0x00000002L
#define MB_YESNOCANCEL              0x00000003L
#define MB_YESNO                    0x00000004L
#define MB_RETRYCANCEL              0x00000005L
// и т.д.
Re: win32api из ассемблера
От: Muchacho США  
Дата: 19.03.03 18:12
Оценка:
Здравствуйте, stas-rw, Вы писали:

SR>проблема такая: из асма вызвать библиотеку трудность не большая, но как задать конкрктные свойства? Например messagebox:

SR>...
SR>push xx ; свойства окна
SR>push st1
SR>push st2
SR>push NN ; дискриптор окна
SR>CALL MessageBoxA
SR>...
SR>Так вот проблема в том что описаний свойств окна куча но какой конкретно бит какому свойству соответствует нигде не сказано. может я не правильно чтото понял?...

Если пользуешься пакетом MASM32, то посмотри на файл windows.inc, где все эти константы определены. Так что пишешь
include \masm32\include\windows.inc и пользуешься обычными привычными именами. Кстати, MASM позволяет вызов функции записать в более привычном виде, вроде:

invoke MessageBox,hWin,ADDR TheMsg,ADDR szDisplayName,MB_OK (читай про invoke)

и не надо ничего push`ить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.