我有一个 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/