我需要支持一些使用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/