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

来源:互联网 发布:支付宝java服务端 编辑:程序博客网 时间:2024/05/29 11:06

一,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。

       




4 0
原创粉丝点击