C++ 使用公共语言运行时支持(/clr)调用mfc dll时,无法运行mfc应用程序
我需要将公共语言运行时支持(/clr)添加到mfc dll项目中,以便在其中使用托管代码。 根据如何使用msdn中的/clr编译MFC和ATL代码,我对所有项目进行了一些设置 我做了很多测试。但是仍然无法运行我的应用程序,尽管我只向项目添加了/clr支持,而没有添加任何托管代码 详情见下文: 异常、调用堆栈、输出信息、使用和不使用/clr之间的输出信息差异和依赖项dll请参见 我无法从调用堆栈中获得任何有用的信息。我甚至不知道在哪里添加调试断点。无论如何,在应用程序的InitInstance()处添加断点太晚了 似乎是根据输出信息加载DLL导致的异常。但我不知道真正的原因 否则,我已经从msdn下载了一个示例解决方案,请参见。该示例包含一个mfc应用程序,该应用程序使用/clr支持调用mfc dll。而且效果很好。当我将mfc dll(支持/clr)添加到此示例中时,它也可以正常工作。我真的不明白为什么它不能在我的解决方案中工作。我已将项目的属性设置与示例解决方案进行了比较。似乎没什么特别的 我确实需要帮助,有什么建议吗?谢谢大家 我通过延迟加载cotaines/clr在调用它的项目中支持的dll解决了这个问题。有关如何延迟DLL的信息,请参阅。这似乎是由混乱的非托管和托管初始化引起的异常C++ 使用公共语言运行时支持(/clr)调用mfc dll时,无法运行mfc应用程序,c++,.net,mfc,clr,managed,C++,.net,Mfc,Clr,Managed,我需要将公共语言运行时支持(/clr)添加到mfc dll项目中,以便在其中使用托管代码。 根据如何使用msdn中的/clr编译MFC和ATL代码,我对所有项目进行了一些设置 我做了很多测试。但是仍然无法运行我的应用程序,尽管我只向项目添加了/clr支持,而没有添加任何托管代码 详情见下文: 异常、调用堆栈、输出信息、使用和不使用/clr之间的输出信息差异和依赖项dll请参见 我无法从调用堆栈中获得任何有用的信息。我甚至不知道在哪里添加调试断点。无论如何,在应用程序的InitInstance()
非托管初始化和托管初始化分为两个不同的阶段。非托管初始化首先发生(通过DllMain),然后托管初始化通过.NET支持的名为.cctor的构造发生有关如何使用See编译MFC和ATL代码的详细信息,请参见,请参见屏幕截图上的异常——发生在哪里?exe(或dll?)模块的哪种方法/功能?嗨,Ruslan Garipov。谢谢你的回复。在我的exe中运行exe时发生异常。是exe Windows本地还是.NET模块?分配内存时,AAVE是一个完全不显著的错误,堆损坏是C++代码中非常标准的错误,与CL/CLR无关。如果从XP升级,您将遥遥领先。当前Windows版本中的调试堆是诊断此类错误的极好工具。强烈建议也打开符号服务器。