【发布时间】:2010-11-10 09:48:14
【问题描述】:
例如,MessageBox 函数具有用于文本和标题的 LPCTSTR 类型参数,当分别定义 _UNICODE 或 _MBCS 时,它是指向 char 的指针或指向 wchar 的指针。
MessageBox 函数如何解释这些字符串?作为哪种编码?
我设法找到的唯一解释是:
http://msdn.microsoft.com/en-us/library/cwe8bzh0(VS.90).aspx
但它没有说明编码?只是在 _MBCS 的情况下,一个字符占用一个 wchar(在 Windows 上为 16 位),而在 _UNICODE 的情况下,一个或两个字符(8 位)。
Microsoft 的 UTF-8 和 UTF-16 版本也是如此-16?有没有办法用 MessageBox 显示 Unicode 基本多语言平面之外的任何内容?
【问题讨论】:
-
正确的宏是
UNICODE,而不是_UNICODE。后者影响 C 标准库头文件,前者影响 Windows 头文件。 -
我不知道。我做了一些阅读,现在我明白了其中的区别。谢谢。