Frage

Hello I am migrating project from Visual studio 6.0 to Visual Studio 2005.

The problem i am facing is ths ... in VS 6.0 wchar_t was simply typecast of unsigned short but in VS2005 wchar_t is built in data type.

In project previous programmers have used wchar_t and unsigned short intechangibally. But in Vs 2005 it showing errors like cannot convert from wchar_t to unsigned short and vise versa.

So my question is can we safely cast wchar_t to unsigned short and vise versa or we need use functions like mbstowcs and wcstombs ?

War es hilfreich?

Lösung

You can use the /Zc:wchar_t- (or its equivalent in the project settings dialog) to turn off the wchar_t-as-native-type feature in VS 2005:

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

Andere Tipps

Changing option Treat wchar_t as native type to NO worked for me :). VC++ 2010 express.

You'll probably be fine but, if it were me, I'd do a search and replace and change references to Unicode characters to wchar_t. For starters, you might just make your code work with future changes to the libraries. It would also make your code easier to read.

Unless I'm missing something, mbstowcs and wcstombs have nothing to do with this. They are for converting between Unicode and multiple. It sounds like all your stuff is Unicode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top