Безопасно ли вводить 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.