使用DLL使用不同的编译器编译

时间:2016-10-27 13:41:29

标签: c# c dll

我目前正在编写一个C#应用程序,它使用C ++ / CLI来利用用C编写的库,这个库不是我自己创建的。这个库被编译成一个DLL,然后在C#项目中引用,在C ++包装器里面(我知道很长)。

这是问题;如果我使用MinGW将C库编译成DLL(GCC makefile随库提供),那么代码就可以正常工作并生成正确的输出(这是通过命令行测试的)。但是,如果我将所有库头文件和源文件包含在Visual Studio中的C项目中并使用MSVC编译器进行编译,那么我会在库代码中获得Read Access Violation深度。

现在我可以(并且可能应该)调试库以确切地找出问题所在,但它是用相当低级别的C编写的,我没有多少经验;所以我的问题是,如果我使用MinGW将库编译成DLL,然后在用MSVC编译的项目中引用该DLL,那会解决问题吗?

1 个答案:

答案 0 :(得分:1)

听起来你正在路上。这是您成为专家开发人员的机会 - 没有捷径。在Visual Studio中逐步执行代码,当您获得不理解的代码时,请进行调查。如果你花了超过2个小时试图了解具体的事情,请休息一下,调整你的调查(即尝试跟随不同的线索,尝试不同的搜索词)。尽可能地继续前进,不要让自己陷入困境。 C语言特别透明 - 没有魔力。你能行的。你会很高兴的。值得努力去理解C。任何东西。你可以在代码中做的任何事情都可以用C语言完成(解释)。 C是计算机语言的罗塞塔石。开始吧让我们知道它是怎么回事。

相关问题