Delay Load DLL: "Exception 0xC06D007E: Modul nicht gefunden", wenn Anwendung gestartet wird mehrere Male

Ich habe einen Fall eines zeitweiligen Absturz in meiner Anwendung, wo wir mit Verspätung DLL Laden. Es gibt ein paar verschiedene call-stacks, wo wir gesehen haben, der crash, aber es immer abstürzt beim heben 0xC06D007E: Module not found im __delayLoadHelper2.

Ausnahme wird ausgelöst, wenn ein Aufruf der Prozess mehrere Male hintereinander (in Serie). Hier ist ein Beispiel-Aufruf-stack:

KERNELBASE.dll!RaiseException()  + 0x3d bytes   
MYDLL.dll!__delayLoadHelper2(const ImgDelayDescr * pidd=0x000000000012f650, __int64 (void)* * ppfnIATEntry=0x000000000012f570)  Line 331    C++
MYDLL.dll!__tailMerge_MyDelayLoadDLL_dll()  + 0x3f bytes    Unknown
MYDLL.dll!MyUserFunction()  Line 91 + 0x5 bytes C++

Den c++ - Anwendung ist mit Verzögerung Laden DLL zu laden .NET-code.

Dem computer, auf dem der Absturz Auftritt, ist eine sehr leistungsfähige Maschine (12 CPU-Kerne, 48 gig ram), ich bin nicht sicher, ob es einen Einfluss auf Sie. Aber seit dem crash nicht passieren die ganze Zeit, es sieht aus wie eine race-Bedingung, oder das Ressourcen-Problem.

Dieser forum thread beschreibt mein Fall, aber es gibt keine Lösung.

Irgendeine Idee warum das passieren kann?

InformationsquelleAutor decasteljau | 2011-11-25
Schreibe einen Kommentar