Главная страница
    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.46 MB
Время: 0.032 c
14-1099644080
vidiv
2004-11-05 11:41
2004.11.21
Сайт MS криво отображается в IE :)))


8-1091519717
parovoZZ
2004-08-03 11:55
2004.11.21
Флипинг и блитинг


14-1099032056
MBo
2004-10-29 10:40
2004.11.21
Пятничная разминка. Задачки попроще и сложные.


9-1089778747
Xerx
2004-07-14 08:19
2004.11.21
FPS


14-1098581802
Думкин
2004-10-24 05:36
2004.11.21
С днем рождения! 24 октября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский