Einzelnen Beitrag anzeigen

katjah

Registriert seit: 6. Aug 2006
Ort: Herborn
28 Beiträge
 
#1

DLL-Problem (bei dynamischer Einbindung)

  Alt 21. Aug 2006, 11:40
Ich habe Probleme mit der Verwendung von DLLs.
Beim statischen Einbinden funktioniert dasselbe problemlos. Sobald das ganze dynamisch eingebunden wird, gibt es Probleme:
entweder liefert die Funktion oder Müll zurück oder aber das ganze bricht mit einem Laufzeitfehler (mit Anzeige des CPU-Fensters) ab.
Das ganze scheint sich also irgendwas im Speicher zu zerdeppern.
Evtl. hat von Euch einer eine Idee, was ich da noch falsch mache ?

Hier der Code der dll:
Delphi-Quellcode:
library TurnFkt;
 
uses
  SysUtils,
  Classes;

{$R *.res}

var ColCaption:string;

function GetColCaption(ColName,Spezial:PChar): PChar;stdcall;
begin
    ColCaption:=ColName;
  Result:=PChar(ColCaption);
end;

exports GetColCaption;

begin
end.
und hier die Funktion im aufrufenden Programm:
Delphi-Quellcode:
function GetColCaption(ColName,Spezial:PChar): PChar;stdcall;
// external '../TurnFkt.dll';
type TGetColCaption=function(ColName,Spezial:PChar): pchar;
var FGetColCaption:TGetColCaption;
    Handle : THandle;
begin
  Handle:=LoadLibrary(Pchar('../TurnFkt'));
  if Handle<>0 then
  begin
    @FGetColCaption:=GetProcAddress(Handle,'GetColCaption');
    if @FGetColCaption<>nil then
      Result:=FGetColCaption(ColName,Spezial);
    FreeLibrary(Handle);
  end;
end;
Als Anleitung habe ich das Dll-Tutorial von www.dsdt.info verwendet, Sharemem möchte ich nicht einsetzen.

[edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt. Mfg, SirThornberry[/edit]
Gruß Katja
  Mit Zitat antworten Zitat