2009-10-14 5 views
4

Я должен поддерживать некоторые программные коды, которые были разработаны с использованием C++ builder 6, а текущая среда разработки - Codegear C++ builder 2009. Мне интересно, совместим ли с C++ Builder 2009 совместимость с codegear? с C++ Builder 6?C++ builder 6 и совместимость с C++ Builder для Windows 2009

Любой ответ приветствуется.

Заранее спасибо.

David.

ответ

5

Это зависит от того, какая «обратная совместимость» вам действительно нужна. AnsiString, безусловно, все еще существует в CB2009, но ее поведение (наконец) изменилось немного, чтобы правильно поддерживать кодовые страницы Ansi. Компоненты VCL в CB2009 теперь основаны на UnicodeString, а не на AnsiString. Кроме того, есть некоторые проблемы с миграцией, которые вы должны быть осторожны, например обработчики событий компонентов, которые использовали параметры AnsiString в BCB6, особенно те, которые передаются по ссылке. И тогда есть интерфейс Win32 API. CB2009 имеет опцию «_TCHAR maps to» для переключения между Ansi и Unicode в API (который НЕ будет переключать VCL между Ansi и Unicode, BTW).

Большинство кода, который вы используете в BCB6, будет «компилироваться» в CB2009, но он может или не может «функционировать» так же, как вы ожидаете, в зависимости от того, что вы делаете с ним. Вам действительно нужно сделать обзор кода относительно использования значений AnsiString/WideString и char/wchar_t, а также посмотреть, что работает как есть, и что нужно переписывать.

Смежные вопросы