组装.LoadFrom在包含MFC的cpp/CLI DLL上失败
Assembly.LoadFrom fails on a cpp/CLI DLL with MFC includes
我有一个c#应用程序,它使用Assembly.LoadFrom
动态加载其他dll。如果dll是具有MFC支持的托管cpp,并且包含afxwin.h
,则此方法将失败。
要重现此行为,只需使用向导创建一个新的托管cpp dll。在配置中添加MFC支持标志。直到您不将任何MFC标准包含在stdafx.h
文件中,Assembly.LoadFrom
才会失败。如果将#include "afxwin.h"
放在stdafx.h
文件中,Assembly.LoadFrom
就会失败!(即DLL是空的!)
线索吗? ?
谢谢,Cabbi
我试着做你在visual studio 2010中描述的。
我将项目设置为使用MFC作为共享DLL,并在stdafx.h中包含afxwin.h。我成功地调用了AfxMessageBox()。所以它不能是你使用MFC的事实,它必须是别的东西。
我想你使用MFC作为共享DLL?此外,请写下您的完整的异常细节。使用进程监视器(http://technet.microsoft.com/en-us/sysinternals/bb896645)来检查你的应用程序试图加载哪些dll。也许这将揭示潜在丢失的dll(如MFC运行时)。使用Dependency Walker (dependencies .exe)查看你的混合模式库引用了哪些dll。
另外,如果您碰巧使用boost::thread静态链接,这将导致加载混合模式程序集失败。
相关文章:
- 用于LabView中使用的本机c++的c++/cli dll包装器
- c++\CLI dll包装器,用于调用c++类中的虚拟成员
- x64 位的 C++/CLI DLL 和 Exe 的应用崩溃
- 附加到 C++/CLI dll 的性能探查器无法访问本机C++代码
- 视觉差异:天然DLL,UWP DLL和C /CLI DLL
- 相机枚举的选项和UWP应用程序的HAL(WPF/C CLI DLL)
- AccessViolationException从C++/CLI DLL读取C++应用程序中分配的内存
- 搜索.NET组件的搜索路径取决于C /CLI DLL
- 将C /CLI DLL导入C Win32控制台(Unmanage)
- 使用我自己的 C++/CLI DLL 的 C#:错误:语言不支持'mytrainOp'
- 整齐地打包依赖于大量本机 DLL 的 C++/CLI DLL
- 非托管C++-需要强名称才能被具有强名称的C++/CLI dll引用
- Visual C#在调用包装的C++CLI dll中的Lapack时引发System.AccessViolation
- C++/CLI DLL 链接器问题
- 部署 .NET C++/CLI DLL 的先决条件
- 在x86中编译引用C++/CLI DLL的C#项目时,MSBuild无法生成
- 组装.LoadFrom在包含MFC的cpp/CLI DLL上失败
- 通过混合模式c++ /CLI DLL从ETL工具中使用托管c# DLL -可能
- 调试从c++应用程序动态加载的c++ /CLI DLL
- 带有C#连接问题的C++/CLI Dll