AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DLL dynamisch einbinden, was mach ich falsch ?
Thema durchsuchen
Ansicht
Themen-Optionen

DLL dynamisch einbinden, was mach ich falsch ?

Ein Thema von arbu man · begonnen am 14. Feb 2005 · letzter Beitrag vom 14. Feb 2005
Antwort Antwort
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

DLL dynamisch einbinden, was mach ich falsch ?

  Alt 14. Feb 2005, 17:53
Hi,

Ich versuche grade eine dll dynamisch einzubinden

Hier der DLL Code
Delphi-Quellcode:
library dll;

uses
  SysUtils,Classes;

{$R *.res}

function functionpchar(pc:pchar):pchar;
begin
  result:=PChar('Result ist: '+PChar(pc));
end;

exports
  functionpchar;

begin
end.
Und das Programm
Delphi-Quellcode:
...
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;
Der Code läuft auch nur kommt eine Zugriffs verletzung
Was mach ich falsch

Vielen Dank für eure Antworten
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: DLL dynamisch einbinden, was mach ich falsch ?

  Alt 14. Feb 2005, 18:01
Zitat von arbu man:
Ich versuche grade eine dll dynamisch einzubinden

Hier der DLL Code
Delphi-Quellcode:
library dll;

uses
  SysUtils,Classes;

{$R *.res}

function functionpchar(pc:pchar):pchar;
begin
  result:=PChar('Result ist: '+PChar(pc));
end;

exports
  functionpchar;
Das geht so nicht!!
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;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz