c# - 使用 C# dll 时,C++ 应用程序无法初始化 (0xc0000005)

标签 c# c++ dll clr

我有一个 C# DLL,我从 native C++ 程序调用它。 当我使用 Qt 和/clr 编译器选项不起作用时,我遵循了 this桥梁教程。

所以我有一个 VS2008 项目(用/clr 编译),它链接到 C# DLL 并包含桥类和 native 类,它向我的 C++ 程序公开接口(interface)。另一个 VS2008 项目(没有 .net 的东西)调用 native 类(静态链接)。

我遇到了一些问题,但现在程序至少可以编译。 但是,如果我尝试运行这个程序,当我尝试使用 native 类时,我会在初始化时遇到 (0xc0000005) 错误。 由于这种情况发生在初始化时,我什至看不到哪些 DLL 无法初始化。所有 DLL 都应位于正确的位置。

有什么提示吗? 谢谢。

最佳答案

我也有类似的问题; Qt 与 C++ 和/clr。我为一个托管类制作了一个包装器,然后用 Qt 制作了前端,我收到了警告……

看看 bytes.com 上的这个讨论: __fastcall functions in a static lib, cant be called from managed code?

那里的人说用 /clr 编译的静态托管类与 fastcall 不兼容。

关于c# - 使用 C# dll 时,C++ 应用程序无法初始化 (0xc0000005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500525/

相关文章:

c# - 找不到命名空间 Microsoft.Win32

可以存储在 std::map 中然后公开映射的 C++ 模板类型

c++ - 成员函数指针权限

c++ - 为 cout 做一个包装器?

c# - List<string> -> xml反序列化

c# - .NET 4 中的 EnumerateFiles 和 EnumerateFileSystemEntries 有什么区别?

c# - 如何在 C# 中将具有 TimeSpan 和通用列表的对象序列化为 XML?

c++ - 通过通用 lambda 理解 Y Combinator

c++ - 不使用线程的c++ dll无限循环

go - golang程序运行时是否可以重新加载动态库?