【发布时间】:2009-10-14 01:11:15
【问题描述】:
我需要支持一些使用C++ builder 6开发的软件代码,目前的开发环境是Codegear的C++ builder 2009,请问codegear的C++ builder 2009是否向后兼容C++ Builder 6?
感谢任何答案。
提前致谢。
大卫。
【问题讨论】:
标签: c++ c++builder
我需要支持一些使用C++ builder 6开发的软件代码,目前的开发环境是Codegear的C++ builder 2009,请问codegear的C++ builder 2009是否向后兼容C++ Builder 6?
感谢任何答案。
提前致谢。
大卫。
【问题讨论】:
标签: c++ c++builder
这取决于您实际需要哪种“向后兼容性”。 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 值的任何使用进行代码审查,看看哪些是按原样工作的,哪些需要重写。
【讨论】: