Autor Beitrag
Philipp_Reitter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: So 21.10.07 00:37 
hi

ich will mein programm mit plugins versehen...
und dazu hab die diese class:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 
 TPluginFunction = function(Self: Pointer;CE: TPSScript): boolean; stdcall;

type
  TPlugin = class
    Proc   : TPluginFunction;
    Handle : THandle;
    constructor Create(filename: String);
  end;


Create sieht so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 constructor TPlugin.Create(filename: String);
begin
  inherited Create;
  Handle := LoadLibrary(pchar(extractFilePath(Application.ExeName)+'plugins\'+Filename));
  @Proc  := GetProcAddress(handle,pchar('plugin'));
end;


das ganze läuft gut...
ich kann die proc so of wie ich will ausführen
nur wenn ich das programm beende
dann geht die form weg daraufhin
läufts ein bisschen weiter
und dann bekomm ich:

ausblenden Quelltext
1:
 *Dateiname* Folgende Exceptions sind aufgetreten: "Zugriffsvcerletzung bei: *Glaub das ist nicht relevant*					


führe ich aber die proc nicht aus so bekomm ich auch keinen fehler beim beenden

vllt. zur info: die proc fügt bei PascalScript 3 einige Functionen hinzu (welche auch functionieren!)

danke im voruas

Mfg
Philipp
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: So 21.10.07 09:52 
Hört sich für mich nach dem typischen Problem an wenn man "lebende" Objekte zwischen Exe und DLL austausch und keine Laufzeitpackages (BPL's) verwendet und somit 2 unabhängige Klassenbibliotheken sowie 2 Memory-Manager hat.

Das Problem des Memory Managers könnnte man mit einbindung von ShareMem oder der Verwendung von FastMM lösen. Das Problem der zwei Klassenbibliotheken nur mit Laufzeipackages (BPL's).
Philipp_Reitter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: So 21.10.07 11:23 
DANKE!!!!
(hab ShareMem nur bei der unit und nicht bei der dll gehabt!)