Безопасно ли вводить unsigned short в wchar_t и наоборот?

Здравствуйте, я мигрирую проект из Visual Studio 6.0 в Visual Studio 2005.

Проблема, с которой я сталкиваюсь, это... в VS 6.0 wchar_t был просто прообраз unsigned short но в VS2005 wchar_t встроен в тип данных.

В предыдущем проекте программисты использовали wchar_t и unsigned short взаимозаменяемо. Но в Vs 2005 он показывает ошибки вроде не может конвертировать из wchar_t в unsigned short и наоборот.

Так что мой вопрос, можем ли мы безопасно бросить wchar_t в unsigned short и наоборот или нам нужно использовать такие функции, как mbstowcs и wcstombs?

3 ответа

Решение

Вы можете использовать /Zc:wchar_t- (или его эквивалент в диалоге настроек проекта), чтобы отключить функцию wchar_t-as-native-type в VS 2005:

http://msdn.microsoft.com/en-us/library/dh8che7s%28v=vs.80%29.aspx

Изменение параметра Обрабатывать wchar_t как родной тип, чтобы НЕТ работал для меня:). VC++ 2010 экспресс.

С вами, вероятно, все будет в порядке, но если бы это был я, я бы выполнил поиск, заменил и изменил бы ссылки на символы Юникода на wchar_t, Для начала вы можете просто заставить свой код работать с будущими изменениями в библиотеках. Это также облегчит чтение вашего кода.

Если я что-то упустил, mbstowcs а также wcstombs не имеют к этому никакого отношения. Они предназначены для преобразования между Unicode и множеством. Похоже, все твои вещи - Unicode.

Другие вопросы по тегам