从BCB5开始,我有一系列使用C++ Builder开发的Win32 VCL应用程序,希望将它们移植到ECB2009或现在称为的任何版本。
我的某些应用程序使用了旧的TNT/TMS unicode组件,因此我在整个代码中很好地混合了AnsiStrings和WideStrings。新版本引入了UnicodeString,以及一系列#define,它们改变了诸如c_str之类的函数的行为方式。
我想以一种尽可能向后兼容的方式修改我的代码,以便在必要时仍可以在BCB2007上编译和运行相同的代码库(以非Unicode方式)。
特别关注的领域是:
函数
我正在寻找的指南而不是一刀切的,可以用来减轻迁移的影响,同时尽可能地保持向后兼容性。
如果还没有这样的指导方针,也许我们可以在这里制定一些指导方针?
最佳答案
最大的问题是与C++ Builder 2009和早期版本的兼容性,Unicode有所不同,但项目配置文件也已更改。从我一直在CodeGear forums上进行的讨论中,在这个问题上没有太多选择。
我认为,如果您尚未开始的话,首先要开始的地方就是C++Builder 2009 release notes。
看到的最大的事情是TCHAR映射(到wchar或char)。使用STL字符串变体可能会有所帮助,因为这两个版本之间的区别应该不大。映射也存在于C++ Builder 2007中(带有tchar header )。
关于unicode - 是否有针对C++ Builder 2009更新C++ Builder应用程序的准则?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/152528/