C语言 UNICODE 和 _UNICODE 之间的区别



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

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

Raymond Chen有一个答案:

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

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

最新更新