Autor Beitrag
Stoffel1984
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 219

Win NT, Win 2000
D6 Prof
BeitragVerfasst: Mi 03.03.04 13:48 
Hallo,

ich lade aus einer DLL ein neues Fenster. Die DLL ist in C++ geschreiben. Delphi läuft nach dem Aufruf des Fensters weiter. So weit so schelcht...
nach dem Aufruf wird die DLL wieder entladen. Und ich erhalte ne Access Violation.
Wie kann ich das lösen?
Rein gefühlsmäßig würde ich das so machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
repeat
  Sleep(100);
  Application.ProcessMessages;
until Fensteristoffen;



Wie kann ich feststellen ob das Fenster noch offen ist?

Grüße, Steffen
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mi 03.03.04 14:01 
Hallo,

die Dll-Funktion, die du aufrufst, zeigt die gleich das Fenster an (wie's aussieht wohl nicht modal). Wäre nützlich, wenn du mal deinen Aufruf postest. Ich nehme an, dass du alles in einer Prozedur machst: mit LoadLibrary die Dll lädst, mit GetProcAdress die adresse der Funktion ermittelst und zum Schluss mit FreeLibrary die Dll wieder freigibst. Das kann nur funktionieren, wenn das Fenster Modal angezeigt wird.

Weil sonst gibst du ja die Dll frei, währen das Fenster angezeigt wird. Logische Folge AV.

MFG

- Ernesto -