混合模式DLL需要延迟加载 我创建了一个混合的DLL(C++/CLI),在从一个简单的ANSI C应用程序成功调用它之后,我就开始从C++ COM服务器调用它(使用相同的C入口点)。但是,即使在COM服务器成功启动或调用DLL之前,我在ntdll.DLL中也会遇到“访问冲突”。调用堆栈只有ntdll.dll!ExecuteHandler2重复多次,直到VS调试输出中报告堆栈溢出。我可以看到我的混合模式DLL和mscoree.DLL已加载

混合模式DLL需要延迟加载 我创建了一个混合的DLL(C++/CLI),在从一个简单的ANSI C应用程序成功调用它之后,我就开始从C++ COM服务器调用它(使用相同的C入口点)。但是,即使在COM服务器成功启动或调用DLL之前,我在ntdll.DLL中也会遇到“访问冲突”。调用堆栈只有ntdll.dll!ExecuteHandler2重复多次,直到VS调试输出中报告堆栈溢出。我可以看到我的混合模式DLL和mscoree.DLL已加载,com,c++-cli,Com,C++ Cli,我将混合DLL添加到COM服务器的延迟加载DLL选项中,它似乎可以工作 为什么当我写的C应用程序工作得很好而没有延迟加载时,混合DLL需要在C++ COM服务器中延迟加载?如何调试这个问题(除非这是预期的,但是我找不到任何关于它的信息)?看起来需要初始化。COM装置用于处理线程同步。听起来像LoaderLock,当DllMain运行时无法加载CLR。当异常与Debug+异常一起抛出时捕获异常,选中抛出复选框。

我将混合DLL添加到COM服务器的延迟加载DLL选项中,它似乎可以工作


为什么当我写的C应用程序工作得很好而没有延迟加载时,混合DLL需要在C++ COM服务器中延迟加载?如何调试这个问题(除非这是预期的,但是我找不到任何关于它的信息)?

看起来需要初始化。COM装置用于处理线程同步。

听起来像LoaderLock,当DllMain运行时无法加载CLR。当异常与Debug+异常一起抛出时捕获异常,选中抛出复选框。