Einzelnen Beitrag anzeigen

trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#1

Funktion in Package - Invalid Pointer Operation

  Alt 31. Aug 2006, 13:34
Hi,

ich wollte mal ein bisschen mit dem dynamischen Linken von Bibliotheken spielen.
Mein Package (Package1) hat eine Unit (Unit1), die wie folgt aufgebaut ist:

Delphi-Quellcode:
unit Unit1;

interface

  function GibAus(sString: string): string;
implementation

function GibAus(sString: string): string;
begin
  try
    Result := 'String aus Funktion: ' + sString;
  except
  end;
end;

exports
  GibAus;

end.
Das Testprogramm so:
Delphi-Quellcode:
[...]
procedure TForm1.Button1Click(Sender: TObject);

var
  PackageModule: HModule;
  ExecF : function(sString: string):string;
begin
  PackageModule := LoadPackage('Package1.bpl');
  if PackageModule <> 0 then
  begin
    @ExecF:=GetProcAddress(PackageModule,'GibAus');
    try
      showmessage(ExecF('TestString'));
    except
    end;
  end;
  UnloadPackage(PackageModule);
end;
[...]
Wenn ich das Ausführe bekomme ich auch die Meldung:
Zitat:
String aus Funktion: TestString
direkt gefolgt von einem Fehler.
Das ist entweder:
'Invalid Pointer Operation'
oder
'Access Violation'

Was mach ich falsch? Kennt jemand ein kleines Tutorial, wo das mit den dynamisch gelinkten Bibliotheken erklärt wird?
Es sollte eine bpl und keine dll sein?!
  Mit Zitat antworten Zitat