Sum*_*uma 5 c++ mfc visual-studio visual-studio-2012
我想#define NOMINMAX在使用MFC的Visual Studio C++项目中使用,以便我可以使用std::min和std::max.但是,当我把这行放在我的stdafx.h中时,我得到以下编译错误:
c:\ program files(x86)\ windows kits\8.0\include\um\GdiplusTypes.h(475):error C3861:'min':未找到标识符
我没有故意使用GDI +,这是MFC必须要做的事情.可以通过删除GDI +或通过调整它来编译来以某种方式解决问题吗?
我不在Windows上工作,所以我不习惯处理这个,我不是在测试这个,但我相信答案是建议你这样做:
#define NOMINMAX
#include <algorithm>
namespace Gdiplus
{
using std::min;
using std::max;
};
//... your other includes.
Run Code Online (Sandbox Code Playgroud)
这将得到"正确"的版本min和max,并使它们可没有std::前缀(这似乎是它是如何在使用的GdiplusTypes.h头).
该WINAPI min和max是宏,所以你可以只是#undef他们包括MFC或WINAPI头后:
#undef min
#undef max
Run Code Online (Sandbox Code Playgroud)