А моя ошибка в чём???
Написал вот такую программку:
includelib kernel32.lib
extrn __imp__ExitProcess@4:dword
includelib 1.lib
extrn __imp__MesBoxyA@0:dword
ExitProcess equ __imp__ExitProcess@4
MessageBox equ __imp__MessageBoxA@16
MesBoxy equ __imp__MesBoxyA@0
.486
.model flat
.code
_start:
call MesBoxy
push 0
call ExitProcess
end _start
А при компиляции Masm пишет:
3.obj : error LNK2001: unresolved external symblol __imp__MesBoxyA@0
По-всякому пробовал - всёравно ошибка!!!
1.dll компилируется!!!
Вот 1.dll:
MB_OK equ 0
.486
.model flat, stdcall
option casemap :none
includelib user32.lib
;extrn __imp__MessageBoxA@16:dword
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
MessageBox equ <MessageBoxA>
;MessageBox equ __imp__MessageBoxA@16
; ----------------------------------------
; prototypes for local procedures go here
;опытные образцы для местных процедур идут сюда
; ----------------------------------------
.const
my_title db "My DLL",0
mes db "It is a message from my first DLL!!!",0
.data?
hInstance dd ?
.code
LibMain proc instance:DWORD,reason:DWORD,unused:DWORD
mov al,1
ret 12
LibMain endp
_MesBoxy@0 proc
push MB_OK
push offset my_title
push offset mes
push 0
call MessageBox
ret
_MesBoxy@0 endp
comment * -----------------------------------------------------
Вы должны добавить процедуры, которых ваш DLL требует
ПОСЛЕ процедуры LibMain. Для каждой процедуры,
что Вы желаете ЭКСПОРТИРОВАТЬ Вас, должен поместить
ее название в "1.def" файл так, чтобы компоновщик
знал который процедуры вставить ЭКСПОРТНЫЙ стол в DLL.
Используйте следующий синтаксис ПОСЛЕ названия
БИБЛИОТЕКИ на 1-ой линии.
You should add the procedures your DLL requires AFTER
the LibMain procedure. For each procedure that you
wish to EXPORT you must place its name in the "1.def"
file so that the linker will know which procedures to
put in the EXPORT table in the DLL. Use the following
syntax AFTER the LIBRARY name on the 1st line.
LIBRARY 1
EXPORTS YourProcName
EXPORTS AnotherProcName
------------------------------------------------------- *
end LibMain
[/noparse]
Посмотреть, экспортируется ли функция можно через Dependency Wаlker из состава VS .NET