fatal error C1189: #error: WINDOWS.H already included. MFC apps must not #include

前言

这也是个常见错误了吧,字面意思就是一个头文件不要重复引用。

atlmfc\include\afxv_w32.h(16): fatal error C1189: #error: WINDOWS.H already included. MFC apps must not #include <Windows.h>

我在编写一个日志类文件时,用到了CStdioFile,而CStdioFile在<afx.h>里定义的,因此顺手在这个日志类的cpp里写了#include <afx.h>,编译时就报了这个错。

解决方案

百度了一下有挺多,我这边就说一下我的方案。

很简单,把#include <afx.h>放在预编译头文件(pch.h或stdafx.h)里,然后包含预编译头文件就行了。话说我写这个日志类的时候,竟然忘记包含预编译头文件了!

留下评论