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

Posted 晴堂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。

       




以上是关于WINDOWS.H already included.MFC apps must not #include <windows.h;的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Windows 控制台程序编译报错 ( WINDOWS.H already included. MFC apps must not #include <Windows.h> )

WINDOWS.H already included. MFC apps must not #i

多次显示同一个窗口

/include/caffe/common.cuh: error: function "atomicAdd(double *, double)" has already be(代码

include/caffe/common.cuh: error: function "atomicAdd(double *, double)" has already bee(代码

Windows编程——API小球点击