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(代码