Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Что то у меня с DLL не получается...   Найти похожие ветки 

 
Koala ©   (2004-11-03 16:30) [0]

текст

library daifl;

uses
 SysUtils,
 Classes,
 Forms,
 infoForm in "infoForm.pas" {fmInfo};

{$R *.res}

procedure ShowInfoDLL(AppHandle : THandle; infDate, infUser : PChar);
begin
Application.Handle := AppHandle;
with TfmInfo.Create(Application) do try
  lbInfoDate.Caption := StrPas(infDate);
  lbInfoName.Caption := StrPas(infUser);
  ShowModal;
finally
  Application.Handle := 0;
  free;
end;
end;

exports ShowInfoDLL;

begin
end.


вызываю из программы:

type

TShowFormFromDLL     = procedure (AppHandle: THandle; infDate, infUser : PChar); stdcall;

procedure TfmMain.ShowFormFromDLL;
var
 DLLHandle: THandle;
 ShowFormFromDLL: TShowFormFromDLL;
begin
 DLLHandle := LoadLibrary(PChar(GetExePath + "\daifl.dll"));
 try
  if DLLHandle <= 0 then
     MsgError("Невозможно загрузить daifl.dll");

   @ShowFormFromDLL := GetProcAddress(DLLHandle, "ShowInfoDLL");

   if Assigned(ShowFormFromDLL) then
     ShowFormFromDLL(Application.Handle, PChar("сегодня"), PChar("Test"))
   else
     MsgError("Отсутствует загружаемая DLL " + #13#10 +
              "или в DLL не найден адрес необходимой функции.");

 finally
   Application.ProcessMessages;
   FreeLibrary(DLLHandle);
 end;
end;


Выскакивает ошибка:
Project D:\Dll\Test\Test.exe faulted with message: "access violation at 0x01056000: read of address 0x01056000". Process Stopped. Use Step or Run to continue.

и вместо текста который передается в
ShowFormFromDLL(Application.Handle, PChar("сегодня"), PChar("Test")) - белеберда всякая
В чем я перемудрил???


 
Reindeer Moss Eater ©   (2004-11-03 16:32) [1]

В соглашении о вызовах


 
Юрий Зотов ©   (2004-11-03 16:36) [2]

Тип процедуры не соответствует самой процедуре. Отсюда неверная передача параметров. Stdcall - либо пишите ВЕЗДЕ, либо НЕ пишите НИГДЕ.


 
Koala ©   (2004-11-03 16:42) [3]

Reindeer Moss Eater ©   (03.11.04 16:32) [1]
Юрий Зотов ©   (03.11.04 16:36) [2]
Во, млин... действительно убрал stdcall и все заработало...
Огромное спасибо....


 
Digitman ©   (2004-11-03 16:49) [4]


> Koala ©   (03.11.04 16:42) [3]


а [2]. конечно же, для тебя было божественным откровением ... дотумкать сие самому, рассмотрев несколько демо-проектов в Делфи - это выше предела чел.возможностей


 
Koala ©   (2004-11-03 16:55) [5]

Digitman ©   (03.11.04 16:49) [4]
у меня нет демок в Delphi(инсталяшка битая) по этому и спрашивал....


 
Digitman ©   (2004-11-03 17:45) [6]


> Koala ©   (03.11.04 16:55) [5]


>  меня нет демок


у тебя , видимо, и файлов справок нет ..

вопрос - а нашута такая инсталляция нужна .. в которой ни справок , ни демо, ни ...

себе дороже ..



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
1-1100155794
novice_man
2004-11-11 09:49
2004.11.21
Динамические переменные и утечки памяти.


14-1099645257
Dmitriy O.
2004-11-05 12:00
2004.11.21
Отчеты


1-1099656416
Ale}{(is)
2004-11-05 15:06
2004.11.21
формат RC-файла


4-1097576029
drew
2004-10-12 14:13
2004.11.21
Здраствуйте, подскажите как можно программно заблокировать WinXP


9-1085817686
ПсихЪ
2004-05-29 12:01
2004.11.21
Анимированные текстуры