C++ builder 6 和 codegear 的 C++ builder 2009 兼容性

标签 c++ c++builder

我需要支持一些使用C++ builder 6开发的软件代码,目前的开发环境是Codegear的C++ builder 2009,请问codegear的C++ builder 2009是否向下兼容C++ Builder 6?

如有任何答复,我们将不胜感激。

提前致谢。

大卫。

最佳答案

这取决于您实际需要哪种“向后兼容性”。 AnsiString 当然仍然存在于 CB2009 中,但它的行为(最终)发生了一些变化以正确支持 Ansi 代码页。 CB2009 中的 VCL 组件现在是基于 UnicodeString 的,不再是基于 AnsiString 的。此外,还有一些您必须注意的迁移问题,例如在 BCB6 中使用 AnsiString 参数的组件事件处理程序,尤其是那些通过引用传递的事件处理程序。然后就是要处理的Win32 API。 CB2009 有一个“_TCHAR 映射到”选项,用于在 API 中的 Ansi 和 Unicode 之间切换(顺便说一句,这不会在 Ansi 和 Unicode 之间切换 VCL)。

您在 BCB6 中拥有的大部分代码将在 CB2009 中“编译”,但它可能会或可能不会以您期望的方式“运行”,这取决于您使用它做什么。您确实需要对 AnsiString/WideString 和 char/wchar_t 值的任何使用进行代码审查,看看哪些按原样工作,哪些需要重写。

关于C++ builder 6 和 codegear 的 C++ builder 2009 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563776/

相关文章:

c++ - 构造函数调用问题

c++ - 如何在 C++ builder 中渲染 openGL 帧?

c++ - 如何检查文件是否为有效的 HDF5 文件?

c++ - 'printf' 与 C++ 中的 'cout'

c++ - clang 不使用可变参数推断可变参数模板函数中的模板参数

c++ - 奇怪的数据类型 - C++

android - 适用于 Android 的 C++ Builder WSDL 客户端

c++ - 调试和解决非常偶发的崩溃的想法 - 似乎是 AV

c++ - 如何在 Borland VCL 中获取组件的父窗体?

c++ - 无法使用 Boost Units 确定编译器错误的解决方案