Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

Что то у меня с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
1-1099698525
Лёха
2004-11-06 02:48
2004.11.21
Jpeg -> TFileStream


8-1093165374
SNV-Soft
2004-08-22 13:02
2004.11.21
Поверхность TPanel в Bmp файл!?


1-1099729259
Ms.Dunkul
2004-11-06 11:20
2004.11.21
свойство Ttreeview, которое отвечает какой item иsubitem является


1-1100076201
hgd
2004-11-10 11:43
2004.11.21
Как скопировать все файлы из папки в другую папку и


4-1097047601
UNIVERSAL
2004-10-06 11:26
2004.11.21
Как определить используется ли файл другим приложением?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский