我有几个非托管 C++ 编写的 lib 文件,我需要链接到托管 C++ dll。
然后我需要从 C# 应用程序调用这个托管 C++ 的函数。
第一步没问题 - 创建托管 C++ dll,我可以使用 ildasm 看到它导出了我需要的功能。但是,当我尝试从我的 C# 编写的测试应用程序中调用此函数时,它会说:
未知模块中发生了“System.IO.FileLoadException”类型的未处理异常。
无法加载由 {MyManagedCPP.dll} 导入的过程。
此消息来自 VS2010。
我做了一个简单的实验——从托管 C++ dll 中的所有 lib 文件中删除依赖项并重建它。
有了这个更改就可以了 - 应用程序启动,我可以从 C# 测试应用程序调用托管 C++ dll 的函数。
当 dll 与 lib 文件具有静态链接时,是否无法通过设计调用托管 c++ 函数?技术限制?还是有一些解决方法?
谢谢