Aha, so langsam steige ich dahinter was du willst. Dann solltest du IMO folgendes machen.
StartDLL erzeugt ein Event/
Mutex/... im Kontext der Anwendung und gibt das
Handle zurück (StartDLL gibt also 1
Handle zurück). Dieses Event wird beim Entladen der
DLL gepulst (PulseEvent()) und ein Thread (vorzugsweise der, der die
DLl geladen hat) in der Hauptanwendung Wartet mit WaitForSingleObject() auf eben diesen Puls. Schon wissen beide Instanzen bescheid. Der wartende Thread kann dann dem Hauptform bescheidgeben, daß die
DLL entladen ist und dieses kann den Status updaten.
Warum benutzt du aber eine eigene Func StartDLL() und nich direkt den Einsprungspunkt der
DLL?