Autor Beitrag
bmontag
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 24.06.08 13:57 
Hallo zusammen,

mich plagt folgendes (Verständnis-?)Problem. Ich habe eine Anwenung, die aus mehreren Formularen besteht, in eine dll gewandelt und möchte diese Anwendung aus einer anderen (Delphi-) Anwendung heraus mit Parametern versorgen. Diese zweite Anwendung dient mir zunächst als Testumgebung, um die dll-Anwendung mit Parametern zu versorgen. Die dll-Anwendung starte ich aus dieser Testumgebung heraus mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.LoadGUIButtonClick(Sender: TObject);
begin
  Handle:=LoadLibrary('usrint.dll');    //Hier Startet die Anwendung !!!!!
  FreeLibrary(Handle);
end;


Nach diesem Aufruf startet meine Anwendung in der dll. Soweit alles ok. Aber die globale Variable Handle bekommt natürlich erst einen Wert zugewiesen, wenn ich meine dll-Anwendung schließe. Erst dann komme ich in die Testumgebung zurück.
Um die laufende Anwendung mit Parametern zu versorgen, habe ich in meiner Testanwendung verschiedene Events auf Buttons gelegt, wie z.B.:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.InitializeGUIButtonClick(Sender: TObject);
var
  EyesiInitializeFunktion : TEyesiInitializeFunktion;
begin
  Handle:=LoadLibrary('usrint.dll');
  if Handle <> 0 then begin
    @EyesiInitializeFunktion := GetProcAddress(Handle,'eyesiMPInitialize');
    if @EyesiInitializeFunktion <> nil then begin
      EyesiInitializeFunktion(0,100);  
    end;
    FreeLibrary(Handle);
  end;
end;


Dieser Aufruf öffnet wahrscheinlichich eine neue Instanz meiner dll und die Variablen kommen vermutlich aus diesem Grund nicht mit den richtigen Werten in meiner dll an.
Vermutlich ist einfach mein Lösungsansatz falsch. Wer kann mir den entscheidenden Tip geben ????

Grüße


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 24.06.2008 um 20:46