Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fatal error LNK1136: invalid or corrupt file, При привязке DLL вылетает такая ошибка 
V
    Опции темы
oshilan
Дата 16.10.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 21.3.2010

Репутация: нет
Всего: 0



Только связался с DLL, как нигде не могу найти нормального примера создания и использования данного. Собрав все свои "знания" по DLL слепил обычную программу для занесени числа в регистр. Но при компиляции, разумеется, ошибка. Помогите, пожалуйста, разобраться в этой проблеме.

Исходный код DLL "dlo.asm":
Код
.386
.model flat,stdcall
option casemap:none
.code
dllka proc param:dword
mov eax,param
dllka endp
end


Исходный текст программы "dl.asm":
Код
.386
.model flat,stdcall
option casemap:none
dllka proto param:dword
.data
_a dd 10
.code
invoke dllka,addr _a
end


bat-файл компиляции:
Код
ml /c /coff /Cp dlo.asm
link /DLL /NOENTRY /def:dlo.def /subsystem:windows dlo.obj
ml /c /coff dl.asm
link /subsystem:windows dl.obj dlo.dll


Лог компиляции:
Код
C:\masm32\bin>ml /c /coff /Cp dlo.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: dlo.asm

C:\masm32\bin>link /DLL /NOENTRY /def:dlo.def /subsystem:windows dlo.obj
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

   Creating library dlo.lib and object dlo.exp

C:\masm32\bin>ml /c /coff dl.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: dl.asm

C:\masm32\bin>link /subsystem:windows dl.obj dlo.dll
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

dlo.dll : fatal error LNK1136: invalid or corrupt file

PM MAIL   Вверх
oshilan
Дата 17.10.2010, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 21.3.2010

Репутация: нет
Всего: 0



Разобрался, и даже создал простейший пример использования DLL. Программа посылает в DLL 2 числа -> DLL находит сумму этих чисел и заносит её в регистр EAX -> программа выводит сумму на экран. Во вложении полный архив, содержимое которого нужно закинуть в папку masm32\bin и запустить goDLL.bat

Исходник DLL - "dll.asm"
Код
.386
.model flat,stdcall
Oshilan proto :dword,:dword
.code
Oshilan proc _a:dword,_b:dword
mov eax,_a
add eax,_b
ret
Oshilan endp
end


Исходник программы - "dll-use.asm"
Код
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib dll.lib
Oshilan proto :dword,:dword
.data
_a dd 5
_b dd 6
fmt db '%u',0
s1 db 'Title',0
s2 db ?
.code
_st:
invoke Oshilan,_a,_b
invoke wsprintf,addr s2,addr fmt,eax
invoke MessageBox,NULL,addr s2,addr s1,MB_OK
invoke ExitProcess,0
end _st


def-файл (без него не будет DLL) - "dll.def"
Код
LIBRARY dll
EXPORTS Oshilan


Компиляционный файл - "goDLL.bat"
Код
ml /c /coff dll.asm
link /subsystem:windows /noentry /dll /def:dll.def dll.obj
ml /c /coff dll-use.asm
link /subsystem:windows dll-use.obj
pause


Буду благодарен за + в репутацию!

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  dll_by_Oshilan.zip 0,85 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.