Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi showmessage aus DLL (https://www.delphipraxis.net/44747-showmessage-aus-dll.html)

Harry M. 24. Apr 2005 00:26


showmessage aus DLL
 
mahlzeit...

ich versuche grad die sache mit den DLL's näher zuverstehen. das tut von assabard ist mir schon wieder zu tiefgründig, deshalb habe ich es erstmal beiseite gelegt.

also ich habe eine DLL da steht drin:

Delphi-Quellcode:
library FirstDll;

uses
  SysUtils,
  Dialogs,
  Classes;

{$R *.res}

procedure Hinweis;
begin
  showmessage('Procedure aus DLL');
end;

exports
    Hinweis;

begin
end.
und in meinem aufrufenden programm steht:

Delphi-Quellcode:

type TTestFunktion = procedure;

procedure TForm1.Button1Click(Sender: TObject);

var TestFunktion : TTestFunktion;
    FuncPtr     : TFarProc;
    DLLHandle   : THandle;

begin
     DLLHandle := LoadLibrary(PChar('FirstDll.dll'));
     FuncPtr  := GetProcAddress(DLLHandle,'Hinweis');
     if FuncPtr <> nil then begin
         @TestFunktion := FuncPtr;
         FuncPtr:=nil;
     end else showMessage('Funktion oder DLL nicht gefunden!');
     FreeLibrary(DLLHandle);
end;
ich bekomme aber weder die meldung das die dll nicht gefunden wurde noch das showmessage daraus. es passiert einfach nix noch nicht einmal eine exception oder av.

Pr0g 24. Apr 2005 00:59

Re: showmessage aus DLL
 
Du musst du Prozedur ja auch noch aufrufen, also nach:
Delphi-Quellcode:
FuncPtr:=nil;
noch
Delphi-Quellcode:
TestFunktion;
schreiben ;)

MfG Pr0g

c113plpbr 24. Apr 2005 01:36

Re: showmessage aus DLL
 
Ich würde dir außerdem von ShowMessage in DLL's abraten, da ShowMessage meines Wissens nach, auf der VCL aufbaut, was leicht "unschöne" folgen haben könnte, wenn sie aufgerufen wird. Daher, mein Tipp: In DLL's grundsätzlich MessageBox verwenden.

ciao, Philipp

Harry M. 24. Apr 2005 02:20

Re: showmessage aus DLL
 
cool danke. es kann doch manchmal so einfach sein...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz