我正在学习 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 库中的示例,你们中是否有人对此有偏好或有一些建议?
干杯,
安德鲁