Einzelnen Beitrag anzeigen

Arthur Hoornweg

Registriert seit: 20. Dez 2005
17 Beiträge
 
Delphi 2007 Professional
 
#8

Re: DLL Fenster als Frame in Anwendung einbinden?

  Alt 22. Jan 2007, 10:00
Das Problem ist m.E. dass die Anwendung sein "tApplication" Objekt an die DLL übergibt.

Das funktioniert nur dann einwandfrei, wenn sowohl die Anwendung als auch die DLL mit Packages (RTL, VCL) kompiliert wurden.

Wenn man die beiden Module ohne Packages kompiliert, wird der Linker sowohl in der DLL als auch in der Anwendung alle unbenutzten Prozeduren und Methoden entfernen um die Dateigröße zu minimieren. Das Speicherlayout (Adressenoffset der Methoden) von dem "tApplication" Objekt ist dann möglicherweise nicht mehr identisch in den beiden Modulen - es kommt dann zum Crash. Vermeiden kann man dies nur, wenn man beide Module mit Packages kompiliert. Das "VCL" Package enthält immer das komplette Tapplication Objekt.
Arthur Hoornweg
  Mit Zitat antworten Zitat