我在使用延迟加载 DLL 的应用程序中遇到了间歇性崩溃的情况。有几个不同的调用堆栈我们已经看到了崩溃,但它总是在引发时0xC06D007E: Module not found
崩溃__delayLoadHelper2
。
连续多次(连续)调用进程时会引发异常。这是一个示例调用堆栈:
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++
c++ 应用程序正在使用延迟加载 DLL 加载 .NET 代码。
发生崩溃的计算机是非常强大的机器(12 核 CPU,48 g ram),我不确定它是否对其有影响。但由于崩溃并非一直发生,它看起来像是一个竞争条件或资源问题。
这个论坛帖子描述了我的情况,但没有解决方案。
知道为什么会发生这种情况吗?