Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在VC+中将TCHAR转换为LPWSTR+;?_C++_Visual C++ - Fatal编程技术网

C++ 在VC+中将TCHAR转换为LPWSTR+;?

C++ 在VC+中将TCHAR转换为LPWSTR+;?,c++,visual-c++,C++,Visual C++,如何在VC++中将TCHAR转换为LPWSTR 我有 TCHAR achValue[16383]; 我想把这个值分配给LPWSTR。 如何在VC中实现这一点++ 非常感谢您的帮助。如果您的项目文件定义了UNICODE标志,那么您只需执行LPWSTR p=achValueTCHAR是基于项目Unicode/MBCS设置的char或wchar\t。如果您是以unicode进行编译,achValue可以用作LPWSTR。如果没有,您需要使用MultiByteToWideChar,以便将achVa

如何在VC++中将TCHAR转换为LPWSTR

我有

TCHAR  achValue[16383]; 
我想把这个值分配给LPWSTR。 如何在VC中实现这一点++


非常感谢您的帮助。

如果您的项目文件定义了
UNICODE
标志,那么您只需执行
LPWSTR p=achValue
TCHAR
是基于项目Unicode/MBCS设置的
char
wchar
\t。如果您是以unicode进行编译,
achValue
可以用作
LPWSTR
。如果没有,您需要使用
MultiByteToWideChar
,以便将
achValue
中的字符从您使用的编码转换为UTF-16。

您需要设置一个
\ifdef
'd部分来处理这两种情况:如果定义了UNICODE(意思是
TCHAR
定义为
wchar
)另一个用于未定义的情况(必须使用
MultiByteToWideChar
进行转换)。

首先为什么要使用
TCHAR
?如果您针对的是任何现代版本的Windows,您应该使用
wchar\u t
。我必须将代码从旧的ANSI项目复制/复制到旧的ANSI项目中,TCHAR使这变得更容易。不,我使用的是多字节字符集