Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Компиляция программы через TASM

2.6K
16 июня 2003 года
Xenix
7 / / 16.06.2003
------Вопрос-------------------
Создаем простую прогу типа Hello, world на TASM
.386
.model flat, stdcall
;constans
MB_OK equ 0
MB_ICONWARNING equ 30h
MB_ICONQUESTION equ 20h
style equ MB_OK+MB_ICONQUESTION
;prototypes external functions
EXTERN MessageBoxA:NEAR
EXTERN ExitProcess:NEAR
;connect library
includelib c:\tasm32\lib\import32.lib
.data
caption db 'Win32 Assembler programming',0
text db 'Hello, world !',0
.code
start:
push style
push offset caption
push offset text
push 0
call MessageBoxA
push 0
call ExitProcess
ends
end start
Затем создаем exe-файл
tasm32 /m1 messbox.asm
tlink32 -aa messbox.obj
Скомпилировалось без ошибок, но при запуске файла выдается след ошибка:
Файл MESSBOX.EXE связан с отсутствующим компонентом USER32.DLL:MESSAGEBOXA
Ну и в чем тут дело ?
----------------------------------
424
18 июня 2003 года
(C)dragon
307 / / 04.12.2002
tasm32 /m /ml /m9 messbox.asm
tlink32 /aa messbox.obj

/ml - различать регистр символов.

extrn MessageBoxA:proc, а не NEAR

И почему так не написать:

call MessageBoxA, 0, offset text, offset caption, 0
call ExitProcess, 0

И если стоит BCB или Delphi, то лучше использовать ilink32:

ilink32 /aa /Tpe messbox.obj
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог