WINDOWS.H already included.MFC apps must not #include <windows.h>

一,error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>


       我们在vs2013中建立的win32应用程序引入MFC时,往往会报这个错误。这是因为在MFC的类库文件中已经引入了WINDOWS.H,

而在vs下,每个.app文件都会默认引入stdafx.h头文件,下面的代码就是stdafx.h的全部内容,可见其中也已经引入了WINDOWS.H

#include "targetver.h"
#define WIN32_LEAN_AND_MEAN 
#include<windows.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>

解决方法是,在stdafx.h头文件中删除#include<windows.h>。


二,error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义


       在MFC的类库中void __cdecl operator delete(void *)方法被不止一次定义,nafxcw.lib和LIBCMT.lib都有定义,而我们在引入MFC类库时

会默认同时引入这两个文件,很多时候我们也需要这两个文件。

解决方法是,点击我的项目>>右键选择属性>>配置属性>>常规>>向下滚动>>找到MFC的使用>>设置为在共享 DLL 中使用 MFC。

       




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值