AfxMessageBox 找不到标识符

大家在使用网站下载的一些MFC程序时,经常会遇见一个报错问题:【error C3861: “AfxMessageBox”: 找不到标识符】,因为我是个菜鸟,所以一直被这个问题所困扰。网上搜索过各种各样的解决方法,发现这类问题的解决方法比较混乱,也没人能说出个具体的原因。

一般搜索这个问题,第一项即是MSDN社区的回答:点击打开链接

此处解决方法很简单,就是将程序中的AfxMessageBox函数全部替换成为MessageBox函数,因为前者调用的是MFC的底层函数库,后者调用的是最为基本的Win32 API。故绝对不会出现“找不到标识符”的错误。

问题虽然可以解决,但是却十分麻烦。而且,相信很多人跟笔者的疑惑是一样的:我明明就是要运行MFC程序,为什么会不支持MFC的底层函数库?

于是,笔者继续寻找有没有其他的解决方法,例如网上常说的在头文件里面加入#include或者#include(其实两者是一样的,因为stdafx.h也调用了afxwin.h,而afxwin.h里面标识了函数AfxMessageBox),还是没有成功。

同样,我也想过把程序就当做是WIN32程序,再进行手工转换成MFC程序。于是又搜索了这样那样的办法……结果也都是一样的,还是不成功。

最后,我想不行我自己编写一个AfxMessageBox函数总行了吧!不然每次都要改来改去实在太麻烦了。然后我打开了AfxMessageBox函数所在的头文件afxwin.h,使用VS平台进行搜索,于是我就看到了这个……
AfxMessageBox 找不到标识符_第1张图片

不知道为啥AfxMessageBox函数竟然被注释掉了,算是彻底无语了……于是就把这四行恢复,再运行,OK,搞定!



转载自  http://www.xuebuyuan.com/1578921.html

你可能感兴趣的:(MFC,C++学习)