快捷搜索: 王者荣耀 脱发

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

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

经验分享 程序员 微信小程序 职场和发展