Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
FreePascal / Lazarus
|
AW: Instabile Sprach features?
18. Jan 2011, 11:48
Zu initialization und finalization:
Finalization Abschnitte funktionieren in Windows DLLs nur sehr eingeschränkt. Ob FPC oder Delphi ist hier egal - Finalization sections in DLLs sind, sobald sie irgendetwas machen, dass nicht völlig banal ist, eigentlich immer Mist.
Wenn man eine Komponente schreibt, sollte man lieber die Finger von diesem altertümlichen Kram lassen - sonst fliegt einem der Code um die Ohren, wenn man mal den Code in einer DLL verwenden will.
Gut, dass das anscheinend wenigstens einem Entwickler mal aufgefallen ist ... nach all den Jahren...
Das mit initialization/finalization liegt aber nicht an FPC/Delphi, sondern mehr an Windows. initialization/finalization wird innerhalb von DLL_PROCESS_ATTACH bzw. DLL_PROCESS_DETACH aufgerufen, welche sehr hohe Beschränkungen haben. Siehe hierzu auch das Blog Old New Thing eines Microsoft Entwicklers:
Some reasons not to do anything scary in your DllMain
Another reason not to do anything scary in your DllMain
Does creating a thread from DllMain deadlock or doesn't it?
Auch MSDN hat was dazu: DllMain entry point
Gruß,
Sven
Sven [Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
|