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

参考链接:

Unicode in the Windows API

posted @ 2017-02-13 15:47  Ch_Y_Q  阅读(1637)  评论(1编辑  收藏  举报