我们使用一个由 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/