是否可以将C代码编译为Visual C ++ DLL?我正在考虑在.Net项目中使用一些C代码,并试图确定这是否是一个选项。
谢谢, 贝基
答案 0 :(得分:2)
是肯定的。如果你想摆脱name mangling使用"extern "C" { /*...*/ }
构造。
另请参阅常见问题解答:How to mix C and C++
答案 1 :(得分:1)
鉴于C ++在很大程度上与C向后兼容,您应该能够使用C ++编译器重新编译代码,除非代码使用某些C99功能。但是,请记住,C ++ / CLI不是标准C ++,因此可能存在其他问题。
正如aJ所说,如果你想避免名称损坏,你必须'extern C'这些符号。
实现此目的的另一种方法是将C库保留为标准本机代码并为其编写精简C ++ / CLI层。然后将C ++ / CLI层公开给.NET应用程序。