【发布时间】:2010-11-23 08:09:35
【问题描述】:
我正在学习C++,偶然在MSDN上看到一篇文章:
http://msdn.microsoft.com/en-us/magazine/dd861344.aspx
在第一个代码示例中,与我的问题相关的一行代码如下:
VERIFY(SetWindowText(L"Direct2D Sample"));
更具体地说是 L 前缀。我读了一点,如果我错了,请纠正我:-),但这是为了允许使用 unicode 字符串,即为长字符集做准备。现在,在我阅读这篇文章时,我在这里看到了另一篇关于 C 语言中的高级字符串技术的文章 http://www.flipcode.com/archives/Advanced_String_Techniques_in_C-Part_I_Unicode.shtml
它说有几个选项,包括包含标题:
#define UNICODE
或
#define _UNICODE
在 C 中,如果我错了,请再次指出,感谢您的反馈。此外,它还显示了适合这些 unicode 字符串的数据类型:
wchar_t
它混合了一个宏和一种混合数据类型,宏是:
_TEXT(t)
它只是在字符串前面加上 L 和混合数据类型
TCHAR
它指出,如果标题存在则允许使用 unicode,如果不存在则允许使用 ASCII。现在我的问题是,或者更多是我想确认的假设,Microsoft 是否会使用这种更灵活的 TCHAR 数据类型,或者承诺使用 wchar_t 是否有任何好处。
此外,当我说 Microsoft 是否使用此功能时,更具体地说,例如 ATL 和 WTL 库中的示例,你们中是否有人对此有偏好或有一些建议?
干杯,
安德鲁
【问题讨论】:
-
感谢大家的反馈!欣赏它! :-)