Visual studio C++ MFC的库函数末尾添加“A”和“W”的意义
背景
在使用Visual studio C++ MFC库函数ModifyMenu(...)函数,在Visual studio自动代码补全里提示没有ModifyMenu(...)这个函数,倒是有ModifyMenuW(...)这个函数。此篇文章即简要解释库函数ModifyMenu(...)加了W代表的意义。
正文
Windows API函数对字符处理有3种格式:
- Windows一般代码格式(Windows code page),用
A来指代ANSI。 - Unicode格式,用
W来指代宽字符(Wide)。 - 以上两种混合体。
以ModifyMenu(...)函数为例,其宏定义如下:
#ifdef UNICODE
#define ModifyMenu ModifyMenuW
#else
#define ModifyMenu ModifyMenuA
#endif // !UNICODE
如上代码段即可知,若是定义了UNICODE则在函数末尾添加W,若是没有定义,则添加A。

浙公网安备 33010602011771号