我正在构建一个C++项目,其中包括 2 个库,这些库隐式包含 2 次windows.h
:
- AFXWIN.h
- atlbase.h (不确定)
知道我需要这两个库进入我的项目,我该如何解决这个问题?
请问有什么绝妙的主意吗?
尝试使用某些外观界面隐藏提到的库,这些库包含在同一编译单元中不可见。
Visual Studio 2010中构建Win32应用程序时遇到了同样的问题。对我有用的解决方案是:
- 打开标准
- 将
#include <windows.h>
替换为#include <afxwin.h>
在尝试理解"为什么我不能使用具有 WIN 类型定义和包含 Windows.h 的库"之前,我花了很多时间在我的 MFC 应用程序中使用 #include
//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"