У меня есть ряд приложений Win32 VCL, разработанных с помощью C++Builder, начиная с BCB5, и я хочу перенести их на ECB2009 или как там это сейчас называется.
В некоторых моих приложениях используются старые компоненты юникода TNT/TMS, поэтому во всем коде я хорошо сочетаю AnsiStrings и WideStrings. В новой версии представлен UnicodeString и набор #define, которые изменяют поведение таких функций, как c_str.
Я хочу изменить свой код таким образом, чтобы он был как можно более обратно совместимым, чтобы при необходимости можно было скомпилировать и запустить ту же кодовую базу (не в формате Unicode) на BCB2007.
Особую озабоченность вызывают:
- Передача строк в/из функций Win32 API
- Взаимодействие с TXMLDocument
- «Необработанные» строки, используемые для связи RS232 и т. д.
Вместо того, чтобы вносить изменения ножом и вилкой, я ищу рекомендации, которые я могу применить для облегчения миграции, сохраняя при этом обратную совместимость, где это возможно.
Если таких руководящих принципов еще не существует, может быть, мы можем сформулировать их здесь?