Статьи по Assembler


Ошибки при вызове функций api - часть 2


include <my equivalent of win.inc = various files> PUBLIC _start

.DATA ALIGN DWORD msg_ok BYTE "ok",0 msg_test BYTE "test",0

.CODE _start: INVOKE MessageBox, NULL, addr msg_ok, addr msg_test, MB_OK call ExitProcess ;EXIT POINT END _start Sincerely, X. [+] MinThank you very much.

Оказывается, MASM611 содержит include-файл для win3.1! Поэтому я скачал пакет MASM32 - и все заработало.

Regards, Min [+] Randall HydeЕсли вам действительно нравится такой синтаксис, переходите на HLA (High Level Assembler). Он позволит вам писать код, подобный следующему: MessageBox( MB_OK, "test", "ok", NULL ); (параметры перечислены в обратном порядке, потому что HLA использует соглашения вызова Паскаля, а не C/C++. Вы можете использовать макрос для устранения этой проблемы, если она для вас существенна).

HLA будет автоматически размещать строки в памяти "только для чтения" и предоставлять вам адреса таких строк. Вы можете найти HLA на http://webster.cs.ucr.edu

Randy Hyde

 

Точка зрения assembler.ru изложена в статье Вызов функций API.






- Начало -  - Назад -  - Вперед -



Книжный магазин