mfc lib使用时必须要有头文件吗

 我来答
EzioJY
2015-12-25 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:78
采纳率:0%
帮助的人:58.2万
展开全部
我稍微详细解答一下楼主的问题。
使用MFC写东西,创建工程以后VC会自动帮你生成一个叫stdafx.h的头文件,被包含进你的工程头文件中。这时这个stdafx.h里面包含了一些必要的头文件,你看一下会发现都是afx开头。你去查找一下会发现都来自于VC98/Include/MFC这个路径下,也就是说都是MFC lib的头文件。
所以你建立的不是MFC工程又想用MFC lib那自然也得去包含那些头文件。
不过不建议这么做,原因是MFC的那些头文件里面已经包含了很多头文件,一般既然要使用MFC了就干脆在MFC框架下编程。一个很多人都遇到过的例子是,使用winsock2.h,会发现报错说afxwin已经包含了windows.h, 不应该重复包含。
解决方法是:
如果你是非MFC工程使用了MFC头文件,那重复包含的头文件必须写在includeMFC头文件之前,并在MFC头文件之前先#define一下重复文件的保护语句;

如果你是MFC工程使用了某个头文件, 例如winsock2.h, 那必须使用替代方法,包含afxsock.h,
找到其中包含其他版本的winsock的头文件的语句,替换成winsock2.h, 然后在MFC工程的stdafx.h中包含afxsock.h,这样就能使用winsock2.h了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式