![]() |
DLL dynamisch einbinden, was mach ich falsch ?
Hi,
Ich versuche grade eine dll dynamisch einzubinden Hier der DLL Code
Delphi-Quellcode:
Und das Programm
library dll;
uses SysUtils,Classes; {$R *.res} function functionpchar(pc:pchar):pchar; begin result:=PChar('Result ist: '+PChar(pc)); end; exports functionpchar; begin end.
Delphi-Quellcode:
Der Code läuft auch nur kommt eine Zugriffs verletzung :wall: :wall: :wall:
...
type Tfunctionpchar = function(pc: Pchar): PChar; function functionpchar(pc: Pchar; dll:string): PChar; function functionstr(str:string):string; ... implementation ... function functionpchar(pc: Pchar; dll:string): PChar; var Funktion: Tfunctionpchar; Handle: THandle; begin Handle:=LoadLibrary(PChar(dll)); if Handle <> 0 then begin @Funktion := GetProcAddress(Handle,'functionpchar'); if @Funktion <> nil then begin result := Funktion(pc); end; FreeLibrary(Handle); end; showmessage('bis hier geht es'); end; function functionstr(str:string):string; begin result:=functionpchar(PChar(str),ExtractFilePath(Application.ExeName)+'dll.dll'); end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage(functionstr('test')); end; Was mach ich falsch :?: Vielen Dank für eure Antworten |
Re: DLL dynamisch einbinden, was mach ich falsch ?
Zitat:
Delphi-Quellcode:
function functionpchar(pc:pchar):pchar;
begin // in der folgenden Zeile wird ein AnsiString gebildet result:=PChar('Result ist: '+PChar(pc)); // es wird ein Zeiger auf diesen String zurückgegeben // wenn diese Funktion verlassen wird, ist der String ungültig // und Result zeigt auf ungültige Daten // möglicherweise haben sind die Daten im Speicher noch intakt // aber das ist nicht von Dauer end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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