fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> Error executing cl.exe.
前言
提示:以下纯粹是个人调试错误的过程经验分享,如有错误欢迎指出,希望与大家一起交流学习进步
问题一 vs2019无法打开源文件"stdafx.h"的解决方法
解决方法:注释掉 include <stdafx.h>语句
注意这里看起来我们虽然注释掉了,没用上这个源文件,但是实际上还是有用到的,这里可能有点绕,但是看了问题二的解答,应该是能懂的
问题二 fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> Error executing cl.exe.
解决方法:
第一步:
首先,检查你的项目中的程序有没有一句自动生成的语句,即:
#include “framework.h”
第二步:
如果有的话,那就继续下一步,有了前面这个基础后,我们右键点击framework.h跳转到该文件里面
对它注释掉#include<windows.h>的语句,并保存,再次运行就会发现这个bug没有了
个人猜测原因如下:我查了很多关于这个问题一和问题二的,但是都是建议用预编译头stdafx.h,但是我试过了,一直会遇到第二个问题,而且查到的方法都是找到嵌套的地方,注释掉#include<windows.h>,但是并没有用,因为笔者压根就找不到这个所谓的stdafx.h,看了另一个教程说是自己去网上下一个,我也试了,下完只有乱码,,没法解决问题,后来我意外打开了framework的文件,跟别人早期版本的VS里面的stdafx.h内容一模一样,猜测应该是因为版本的更新,这个文件改名了,并且是新建项目自动生成的。然后更加根本为什么要注释掉#include<windows.h>的原因是因为它在不同的头文件里重复引用了,所以必须注释掉,否则就会报错。