c# - 从托管 C++ DLL 使用 C# 程序集时崩溃

标签 c# c++ dll crash managed

在 Windows XP 系统上,我正在编写一个托管 C++ 库,它调用 C# 程序集中的代码。不幸的是,一旦我开始在 C# 程序集中引用符号,运行托管 C++ 库就会失败并出现此错误(我从 XP 崩溃对话框中复制了它):

EventType : clr20r3
P1 : treeviewdemo.exe
P2 : 0.0.0.0
P3 : 4a5d6d62
P4 : system.windows.forms
P5 : 2.0.0.0
P6 : 4889dee7
P7 : 12fc     
P8 : ac
P9 : system.io.filenotfoundexception    

Manged C++ 库基本上就是:

#using "C:\\MyCSharpAssembly.dll";

__declspec(dllexport) void callMangagedCode() {
  ManagedObject ^o = nullptr;
}

'#using' 本身似乎不会引起任何问题,但是一旦我开始使用 C# DLL 中的符号,我就会遇到问题。有人知道这是怎么回事吗?

system.io.filenotfoundexception 部分让我觉得没有找到某些 DLL,但我不知道它在寻找哪个或在哪里。

最佳答案

MyCSharpAssembly.dll 的所有依赖项是否在同一路径上可用?如果不确定,请尝试在 ILDasm 中加载 C-Sharp 程序集。找出其依赖项的工具。

作为完整性检查,还要检查此 C-Sharp DLL 是否可以从另一个 C-Sharp 可执行文件加载。

关于c# - 从托管 C++ DLL 使用 C# 程序集时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158519/

相关文章:

c++ - 我应该通过引用或值将参数传递给内联函数吗?

c++ - 从 DLL 调用函数时 MFC 断言错误

asp.net - 生成 Web 用户控件的 dll

c# - 未处理的任务异常未拆除控制台应用程序

c# - 如何拆分数组列表?

c# - Windows 商店应用程序中的密码散列

c# - 我在我的解决方案中添加了一个新的 XML 文件,但是当我按 F5 对其进行测试时,我在 Debug 文件夹中找不到 .xml 文件

c++ - gflags 链接器错误 : undefined reference

c++ - 如何从AVFrame获取亮度图片?

c# - 为 VB6 编译 C#.net dll