Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 00:51   #1
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
Вопрос Не работает DLL

Написал DLL:
Код:
format PE GUI 4.0 DLL
entry DllEntryPoint
include 'INCLUDE\win32ax.inc'

section '.data' data readable writable

formats db "%d",0
temp db 256 dup(?)
OperationFile db 'Open',0

section '.code' code readable executable

proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
	mov	eax,0
	ret
endp

proc NewFile FileName,ExecuteFile
invoke _lcreat,[FileName],0
cmp [ExecuteFile],1
invoke ShellExecute,0,OperationFile,[FileName],0,0,SW_SHOW
.else
mov eax,0
.endif
endp

section '.idata' import data readable writeable

  library kernel32,'KERNEL32.DLL',\
	  user32,'USER32.DLL',\
	  shell32,'SHELL32.DLL'

  include 'INCLUDE\api\kernel32.inc'
  include 'INCLUDE\api\user32.inc'
  include 'INCLUDE\api\shell32.inc'

section '.edata' export data readable

  export 'FMANAGER.DLL',\
	 NewFile, 'NewFile'

section '.reloc' fixups data discardable
Скомпилировалось, но когда в программе написанной на дельфи вызываю NewFile, то выходит ошибка о том что программа не смогла запуститься.
Код:
procedure NewFile(FileName : PChar; ExecuteFile : cardinal); stdcall; external 'FMANAGER.DLL';
А вот ошибка:
"Ошибка при иницилизации приложения (0xc0000142). Для выхода из приложения нажмите кнопку "ОК"."
Crivel вне форума Ответить с цитированием
Старый 04.04.2009, 02:26   #2
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Я новичок и не пойму где ошибка. Помогите пожалуйста.
Заранее благодарен!
Crivel вне форума Ответить с цитированием
Старый 04.04.2009, 08:37   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
DllEntry proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD

mov eax,TRUE
ret

DllEntry Endp

Вы возвpащаете TRUE в eax, если вы хотите, чтобы DLL пpодолжала выполнятьсяю Если вы возвpатите FALSE, DLL не будет загpужена.
(С) Iczelion.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 05.04.2009, 12:27   #4
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Спасибо!
Crivel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает тег align=right?valign работает а align нет! aviv HTML и CSS 5 21.01.2009 17:46
Не работает dll Манжосов Денис :) Общие вопросы Delphi 1 06.01.2009 10:35
Проблема с UserForm. То работает, то НЕ работает Maxx Microsoft Office Excel 6 19.11.2008 14:51
Пишу DLL в Delphi.Вызываю функцию в С.Не работает Ozerich Общие вопросы Delphi 4 26.08.2008 10:17