C1189: #error : 窗户。H 已包括在内。MFC 应用不得 #include < Windows.h>



我正在构建一个C++项目,其中包括 2 个库,这些库隐式包含 2 次windows.h

  1. AFXWIN.h
  2. atlbase.h (不确定)

知道我需要这两个库进入我的项目,我该如何解决这个问题?

请问有什么绝妙的主意吗?

尝试使用某些外观界面隐藏提到的库,这些库包含在同一编译单元中不可见。

我在

Visual Studio 2010中构建Win32应用程序时遇到了同样的问题。对我有用的解决方案是:

  1. 打开标准
  2. #include <windows.h>替换为#include <afxwin.h>

在尝试理解"为什么我不能使用具有 WIN 类型定义和包含 Windows.h 的库"之前,我花了很多时间在我的 MFC 应用程序中使用 #include 在 stdafx.h 中最后,我从 300+ 个文件中发现了神奇的错误包含顺序。

//MyModuleName.cpp
#include "MyModuleName.h"
#include "..stdafx.h"     // <--- this must be always first

修复后,所有外部库等都可以正常工作,即使在标头中的 Windows.h 中也是如此

//MyModuleName.cpp
#include "..stdafx.h"     // <--- this must be always first
#include "MyModuleName.h"

相关内容

最新更新