Zitat von
himitsu:
ich hatte das mal vor ewigen Zeiten dafür genutzt eum eine Datei einmal als normale EXE und wenn nötig auch mal als
DLL (in den Explorer integriert) zu verwenden.
Allerdings hatte ich da keine derartigen Probleme? (D4 Std)
Im allgemeinen Funktioniert dieser Ansatz ja, wie beschrieben, auch bei mir fehlerlos. Problematisch wird es bei Szenarien dieser Art
Delphi-Quellcode:
var
FReference: TObject;
function GetReference: TObject;
begin
Result := FReference;
end;
exports
GetReference;
initialization
FReference := TSomeClass.Create;
finalization
FreeAndNil(FReference);
end.
Die Prozedure
GetReference kann problemlos genutzt werden und der Code wird fehlerfrei ausgeführt. Leider wird der
Initialization-Block jedoch nicht ausgeführt, weshalb die
Unit nicht korrekt initialisiert werden kann. In dem skizzierten Beispiel ließe sich das einfach lösen, bei diversen Units von Drittherstellern jedoch nicht mehr ohne weiteres.
Gibt es vielleicht einen speziellen Prozeduraufruf, der die sonst automatisch vorgenommenden Initialisierungen vornimmt?