Windows程序设计:MessageBox到底是函数还是宏定义?【附图】 20

以下是我编写的一段程序,编程环境是MSVC++6.0,装有VisualAssist,当我查看MessageBox的定义时,找到下面的内容,从这里看MessageBox是宏... 以下是我编写的一段程序,编程环境是MS VC++6.0,装有Visual Assist,
当我查看MessageBox的定义时,找到下面的内容,从这里看MessageBox是宏定义,
但在程序代码中 VA显示的颜色是棕色(棕色表是函数,粉色表示宏定义),
这表示MessageBox是一个函数,于是我自己又模仿MessageBox的定义自定义了MyMessageBox,结果
VA显示为粉色,说明VA认为我定义了宏MyMessageBox。
另外很多书本和网上资料都使用“MessageBox函数”这样的表述。
所以我的问题是MessageBox到底是函数还是宏定义呢?
/*<WINUSER.H>中MessageBox的定义*/
#ifdef UNICODE#define MessageBox MessageBoxW#else#define MessageBox MessageBoxA#endif // !UNICODE
/*程序源代码:MyMessageBox.C*/
#define MYUNICODE#define UNICODE
#ifdef MYUNICODE#define MyMessageBox MessageBoxW#else#define MyMessageBox MessageBoxA#endif // !MYUNICODE
#include <windows.h>#include <locale.h>#include <TCHAR.H>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ TCHAR * tc = TEXT("Hello!"); MessageBox(NULL,tc,TEXT("tc内容"),MB_OK); MyMessageBox(NULL,tc,TEXT("tc内容"),MB_OK);}
展开
 我来答
bd_zwj
2015-03-10 · TA获得超过161个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:247万
展开全部
是宏定义

MessageBox 在Unicode模式下调用MessageBoxW 在ANSI 模式下调用MessageBoxA

Windows 中有关需要处理字串的API,或者结构, 大部分都是按照这种方式进行声明的, 有两个函数/结构的的声明。 函数或结构名称尾部为A的表示采用Ansi字符集, 为W的表示采用Unicode字符集。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式