Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion in Package - Invalid Pointer Operation (https://www.delphipraxis.net/76214-funktion-package-invalid-pointer-operation.html)

trashcandesign 31. Aug 2006 13:34


Funktion in Package - Invalid Pointer Operation
 
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?!

trashcandesign 4. Sep 2006 07:19

Re: Funktion in Package - Invalid Pointer Operation
 
Keiner eine Idee?
Hat noch keiner von euch mit bpl's gearbeitet?

mkinzler 4. Sep 2006 07:24

Re: Funktion in Package - Invalid Pointer Operation
 
Hast du ShareMem eingebunden?

trashcandesign 4. Sep 2006 08:02

Re: Funktion in Package - Invalid Pointer Operation
 
Nein,

brauch ich die auch bei bpl's oder nur bei dll's?
In welche Dateien muss die eingebunden werden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 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