Главная страница
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.042 c
14-1098736585
Беспечный_Ангел
2004-10-26 00:36
2004.11.21
Ария vs Кипелов


14-1099656127
anton2v
2004-11-05 15:02
2004.11.21
Кто такой мастер


1-1099934526
interloper
2004-11-08 20:22
2004.11.21
TListView


14-1099139953
DiamondShark
2004-10-30 16:39
2004.11.21
Заповедник сказок.


4-1097509885
TeNY
2004-10-11 19:51
2004.11.21
Как установавить саретку в TMemo в нужное положение