2

您好,我正在将项目从 Visual Studio 6.0 迁移到 Visual Studio 2005。

我面临的问题是……在 VS 6.0wchar_t中只是类型转换,unsigned short但在 VS2005wchar_t中是内置的数据类型。

在项目中,以前的程序员已经使用 wchar_t 和 unsigned short intechangibally。但在 Vs 2005 中,它显示错误,例如无法转换wchar_tunsigned short,反之亦然。

所以我的问题是我们可以安全地wchar_t转换成unsigned short反之亦然,还是我们需要使用像 mbstowcs 和 wcstombs 这样的函数?

4

3 回答 3

1

您可以使用 /Zc:wchar_t-(或项目设置对话框中的等效项)关闭 VS 2005 中的 wchar_t-as-native-type 功能:

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

于 2011-03-31T05:16:45.100 回答
1

将选项将 wchar_t 视为本机类型更改为 NO 对我有用:)。VC++ 2010 快递。

于 2012-02-25T10:52:32.137 回答
0

您可能会没事,但如果是我,我会进行搜索和替换,并将对 Unicode 字符的引用更改为wchar_t. 对于初学者,您可能只是让您的代码适用于未来对库的更改。它还可以使您的代码更易于阅读。

除非我错过了什么,mbstowcswcstombs此无关。它们用于在 Unicode 和多个之间进行转换。听起来你所有的东西都是 Unicode。

于 2011-03-31T05:17:35.900 回答