c++ - 我可以直接在VC9项目中使用用VC6构建的C风格库吗?

标签 c++ c visual-c++-6 visual-c++-2008

我们使用一个由 VC6 编译器构建的内部库(由其他团队开发)。这个库主要包含 C 风格的 API。我们有迁移到 Visual Studio 9 编译器的计划。我应该要求使用 VC9 编译器构建库吗?

一个更一般的问题,使用两个不同版本的 Visual Studio 编译器构建的 DLL 在哪些方面(可能是名称修改、优化等)不同?

最佳答案

冲突通常发生在C Runtime 库中。主要思想是内存应该在分配它的模块中释放。这样就可以安全地使用用不同版本的编译器构建的库。另一个问题是结构的打包,但如果你只使用 Visual C++ 编译器,它没有区别。

Name mangling在 Visual C++ 中因版本而异,但它仅适用于 C++ 库。如果您使用 C 样式导出(例如,如果您有 DEF 文件),则无需担心。

This问题与您的问题不完全相同,但可能会有所帮助。

关于c++ - 我可以直接在VC9项目中使用用VC6构建的C风格库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624648/

相关文章:

C 编程打开和读取文件

c++ - Apache 模块命令解析器原型(prototype)

dll - .lib和.dll向后兼容性

visual-c++ - 编译过程

C++ 取消分配 2d int 数组错误

c++ - 抛出异常 : write access violation. _My_data 为 0x7001AC

8 位微 Controller 可以使用 32 位整数吗? (反之亦然)

c++ - 无法从 'const wchar_t *' 转换为 '_TCHAR *'

c++ - 创建 Stack VM 时出现段错误

c# - 如何将方法返回的接口(interface)变量转换为对象?