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

Posted

技术标签:

【中文标题】在 VC++ 中将 TCHAR 转换为 LPWSTR?【英文标题】:Convert TCHAR to LPWSTR in VC++? 【发布时间】:2011-02-28 12:01:13 【问题描述】:

如何

例如:我有

TCHAR  achValue[16383]; 

我想将此值分配给 LPWSTR 。 如何在 VC++ 中实现这一点

感谢任何帮助。

【问题讨论】:

你为什么首先使用TCHAR?如果您的目标是任何现代版本的 Windows,您应该使用 wchar_t 我不得不在旧的 ANSI 项目中复制代码,而 TCHAR 使这变得容易得多。 【参考方案1】:

TCHARcharwchar_t,具体取决于您的项目 Unicode/MBCS 设置。如果您正在编译为 unicode,achValue 可以用作LPWSTR。如果没有,您需要使用MultiByteToWideCharachValue 中的字符从您使用的编码转换为UTF-16。

【讨论】:

【参考方案2】:

如果您的项目文件定义了UNICODE 标志,那么您可以简单地使用LPWSTR p = achValue;

【讨论】:

不,我使用的是多字节字符集【参考方案3】:

您需要设置一个#ifdef'd 部分来处理这两种情况:一个用于定义 UNICODE(意味着TCHAR 定义为wchar_t),另一个用于未定义(你必须使用MultiByteToWideChar 来转换它)。

【讨论】:

以上是关于在 VC++ 中将 TCHAR 转换为 LPWSTR?的主要内容,如果未能解决你的问题,请参考以下文章

将 LPWST 转换或转换为 BSTR

在 vc++ 中将字符串转换为双精度

如何在 vc++ 中将 char* 转换为 LPWSTR..........................? [复制]

如何在 VC++ 中将 char* 转换为 LPWSTR?

在 vc++ 中将 Unicode 字节数组转换为 CString

如何在 vc 6.0 中将对象转换或分配为 Variant 类型