C++ Windows库函数末尾添加“A”和“W”的意义

Windows API函数对字符处理有3种格式:

  • Windows一般代码格式(Windows code page),用A来指代ANSI
  • Unicode格式,用W来指代宽字符(Wide)
  • 通常大部分版本均会编译为Windows一般代码格式或者Unicode格式。

一些最新的方法只有Unicode版本。更多信息请参考函数原型的约定.

ModifyMenu(...)函数为例,其宏定义如下:

1
2
3
4
5
#ifdef UNICODE
#define ModifyMenu  ModifyMenuW
#else
#define ModifyMenu  ModifyMenuA
#endif // !UNICODE

如上代码段即可知,若是定义了UNICODE则在函数末尾添加W,若是没有定义,则添加A

参考:https://www.cnblogs.com/ChYQ/p/6394065.html https://docs.microsoft.com/zh-cn/windows/win32/intl/unicode-in-the-windows-api?redirectedfrom=MSDN