![](/img/trans.png)
[英]Calling unmanaged C++ library (dll) from C# creates an access violation error (0xc0000005)
[英]C++ app fails to initialize (0xc0000005), when using C# dll
我有一个C#DLL,可从本机C ++程序调用它。 由于我使用Qt和/ clr编译器选项不起作用,因此按照本教程进行操作。
因此,我有一个VS2008项目(用/ clr编译),该项目链接到C#DLL,并包含bridge类和本机类,该类向我的C ++程序公开接口。 另一个VS2008项目(没有.net东西)调用了本机类(静态链接)。
我遇到了一些问题,但是现在程序至少可以编译了。 但是,如果尝试运行此程序,则在尝试使用本机类时会在初始化时收到(0xc0000005)错误。 在初始化时发生这种情况,我什至看不到哪个DLL无法初始化。 所有DLL应该放在正确的位置。
有什么提示吗? 谢谢。
我有个类似的问题; Qt与C ++和/ clr。 我做了一个托管类的包装,然后用Qt作为前端,然后得到警告……
看一下bytes.com上的讨论: 静态库中的__fastcall函数,不能从托管代码中调用吗?
那个家伙说用/clr
编译的静态托管类与fastcall不兼容。
该项目(称为本机类)被静态链接到我的exe,这没有用。 我将其更改为DLL,现在似乎可以使用了。
我会再调查一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.