1

可能重复:
为什么同时使用 UNICODE 和 _UNICODE?

UNICODE 和 _UNICODE 有什么区别?如果将程序编译为使用 unicode 字符,我们是否需要同时定义两者?我们有两个不同的标识符来使用 unicode 字符有什么原因吗?

4

1 回答 1

4

Raymond Chen有一个答案:

没有下划线的普通版本会影响 Windows 头文件视为默认的字符集。因此,如果您定义 UNICODE,例如,GetWindowText 将映射到 GetWindowTextW 而不是 GetWindowTextA。同样,TEXT 宏将映射到 L"..." 而不是 "..."。

带有下划线的版本会影响 C 运行时头文件视为默认的字符集。因此,如果您定义 _UNICODE,则 _tcslen 将映射到 wcslen 而不是 strlen,例如。同样,_TEXT 宏将映射到 L"..." 而不是 "..."。

于 2012-06-17T15:31:03.423 回答