C++ #包括<;gdiplus.h>;导致错误

C++ #包括<;gdiplus.h>;导致错误,c++,visual-c++,C++,Visual C++,当我在一个编译良好的程序中包含gdiplus.h时,我得到的第一个(有很多)错误是: c:\program files (x86)\microsoft sdks\windows\v7.0a\include\GdiplusImaging.h(77): error C2504: 'IUnknown' : base class undefined GdiplusImaging.h的一部分: IImageBytes : public IUnknown <<< error! { pu

当我在一个编译良好的程序中包含
gdiplus.h
时,我得到的第一个(有很多)错误是:

c:\program files (x86)\microsoft sdks\windows\v7.0a\include\GdiplusImaging.h(77): error C2504: 'IUnknown' : base class undefined
GdiplusImaging.h的一部分:

IImageBytes : public IUnknown  <<< error!
{
public:
     ...

IImageBytes:public IUnknown您应该尝试在
gdiplus.h
之前添加
windows.h
unknown.h
标题

#include <Unknwn.h>    
#include <windows.h>
#include <gdiplus.h>
#包括
#包括
#包括

这些是使用GDI+的标准包括:

#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment (lib,"Gdiplus.lib")
#包括
#包括
#包括
使用名称空间Gdiplus;
#pragma注释(lib,“Gdiplus.lib”)

gdiplus.h
之前是否包含了
windows.h
?无法复制。您的配置有问题。现在重新安装sdk,有问题。我认为如果重新安装sdk不能解决问题,请尝试将“显示包含”(在C/C++->advanced下)设置为
Yes
,然后重新编译。您将在输出窗口中看到包含的顺序。可以让事情变得更清楚。谢谢你的提示,简单地包含Unknwn.h保存了我的灵魂。在调用
gdiplus.h
之前,你是否尝试强制添加
Unknwn.h
标题?我想知道为什么不将其包含在gdi标题中??这有帮助!谢谢将它添加到答案中。我使用了这个完全相同的块,但仍然存在在gdiplustype.h文件中未定义最小/最大宏的问题(该文件由gdiplus.h内部包含)。以下线程有帮助-如果您尝试为平台工具集
Visual Studio 2017-Windows XP(v141\u XP)
构建它,那么在VS2017下这将不起作用。给你。有人知道如何构建这些GDI+库吗?
#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment (lib,"Gdiplus.lib")