Thread-Erstellung, CRT und DLLs, wie soll das gemacht werden?

Ich verstehe also, dass CreateThread und die CRT zu Speicherverlusten führen können, das Signal nicht funktioniert und man die _beginthread- oder _beginthreadex-Funktionen verwenden sollte.

Das ist alles sehr gut, wenn Sie eine Anwendung schreiben, aber was ist mit denen, die DLLs und dergleichen für andere Anwendungen schreiben (sei es eine einfache DLL, COM-Objekte, Plugins usw.). Es gibt keine Garantie dafür, wie ein Thread erstellt wurde, der eine DLL aufruft, auch wenn sie __beginthread (ex) verwendet haben. Es ist sehr wahrscheinlich, dass sie eine andere CRT-Implementierung haben.

Was genau sollen Programmierer also tun? Verwenden Sie die CRT nicht? Einen internen Thread erzeugen und die gesamte Arbeit dorthin verlagern (ohne die CRT mit dem aufrufenden Thread zu verwenden)? Irgendein Trick mit DllMain und dem Anfügen / Entfernen-Zeug, um alle Threads korrekt einzurichten und herunterzufahren, unabhängig davon, wie sie erstellt wurden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage