Zitat von
scp:
1. Habe ich irgendwelche "unsichtbaren" Nachteile, wenn ich DisableThreadLibraryCalls einsetze?
2. Was bewirkt das überaupt?
DisableThreadLibraryCalls sorgt dafür, dass das Modul nicht mehr über das Erzeugen/Beenden von Threads im aktuelle Prozeß informiert wird. Kurz, DllMain wird nicht mehr mit DLL_THREAD_ATTACH/DLL_THREAD_DETACH aufgerufen.
Die DllMain ist bei Delphi-DLLs in der RunTime Library (
RTL) gekapselt. Die Variablen DllProc und DllProcEx ermöglichen es, über die Aufrufe der DllMain informiert zu werden.
Ich sehe nur drei Möglichkeiten:
- deine LibraryProc(Ex) (falls vorhanden) reagiert falsch auf DLL_THREAD_ATTACH/DLL_THREAD_DETACH
- die
RTL/Packages/Komponenten reagieren aufgrund unzureichender Konfiguration falsch (siehe IsMultiThread)
- die
RTL hat einen Bug
Ansonsten kommen nur noch die üblichen Programmierfehler in betracht
Hast Du einen Call-Stack von dem Fehler?