На какие области кода C ++ может повлиять портирование на Visual 2005 и переход на юникод? - PullRequest
0 голосов
/ 24 июля 2010

Недавно мы перенесли устаревший код для использования Visual Studio 2005 и Unicode.

На какие ключевые области влияет переключение на набор символов Unicode?

Ответы [ 2 ]

0 голосов
/ 23 августа 2010

Мой самый большой кошмар из всех, когда я начинаю поддерживать юникод (мне не нравится слово «преобразование в юникод»), это сторонние библиотеки, которые принимают char * для имен файлов, а затем направляют их в устаревшие API-интерфейсы Windows, такие как CreateFileA.

Очень трудно сделать так, чтобы они поддерживали Unicode, если у вас нет исходного кода библиотеки, а также, эта практика очень хороша в Linux, где универсально поддерживается UTF-8.

Моя команда должна была получить имя файла 8.3 для каждого файла перед подачей его в эти API.Он опирается на параметр реестра (по умолчанию включен), который не позволяет Windows использовать символы не-ascii в именах файлов 8.3 и в первую очередь поддерживает имена файлов 8.3.

Это не работает, если сломанная библиотека создает файл, потому что имя файла 8.3 не известно до создания.Мы должны были обмануть это, создав обертку, которая создаст файл, выделит имя файла 8.3 и затем передаст его в библиотеку.

0 голосов
/ 12 августа 2010

MS изменила настройку по умолчанию в VS2005 для параметра «Рассматривать WChar_t как встроенный тип» на «Да» (Options / C-C ++ / Language). Это заставило нас перекомпилировать / обновить все внешние библиотеки, с которыми мы связывались.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...