A
Size: a a a
A
A
A
A
II
fz
format PE gui dll ; собираем DLL-модуль
include 'win32ax.inc' ; макросы для укороченных директив
include 'encoding/win1251.inc' ; подключим кирилицу
;---------
.data
mes0 db 'Библиотека Dll удачно поключена!',0 ; мессага-флаг, что DLL робит
wName db 'Тест внешнего модуля',0 ; ..обзовём окно.
;---------
.code
start: ; точка входа!
mov eax,1 ; возвращаем TRUE
ret ; ..в родитель LdrLoadDLL()
; Теперь наша либа зарегана, и мы можем вставлять всякие процедуры.
; Пока только одна.., которая просто покажет окно.
proc Hello
invoke MessageBox,0,mes0,wName,0 ; даём о себе знать!
ret ; на выход.
endp ; конец процедуры 'Hello'
.end start ; макрос автоматом вставит секцию импорта.
; А вот секцию экспорта нужно вбить на клаве,
; и перечислить в ней весь экспорт, чтобы EXE смог их импортировать
;---------
section '.edata' export data readable ;
export 'myDll.dll',\ ; имя нашей библиотеки
Hello, 'Hello' ; тут перечисляем имена всех процедур
;---------
section '.reloc' fixups data discardable ; разрешаем загрузчику перемещать базу DLL в памяти
II
II
A
A
A

A
A