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
。