2011-09-05 195 views
7

當我包括,編譯以及第一個程序gdiplus.h(有很多)的錯誤,我得到的是:的#include <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: 
    ... 

爲什麼是這樣?這個IUnknown課程在哪裏?爲什麼它不在GdiplusImaging.h中?

我的系統是Windows7 x64。 VisualStudio的2010年

包括部分:

#include <windows.h> 
#include <gdiplus.h> 
using namespace Gdiplus; 
#pragma comment (lib, "gdiplus.lib") 
+0

'gdiplus.h'之前是否包含'windows.h'? – eran

+0

無法重現。有些東西與你的配置有關。 –

+0

現在重新安裝sdk,出現問題我想 – Sergey

回答

20

添加windows.hUnknwn.h頭這些都是標準包括使用GDI +:

#include <windows.h> 
#include <objidl.h> 
#include <gdiplus.h> 
using namespace Gdiplus; 
#pragma comment (lib,"Gdiplus.lib") 
+0

我使用了這個確切的塊,但仍然有最小/最大的宏在gdiplustype.h文件(gdiplus.h內部包含)中未定義的問題。以下線程幫助--http://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c –

3

你應該嘗試之前gdiplus.h

#include <Unknwn.h>  
#include <windows.h> 
#include <gdiplus.h> 
+0

實際上我正是這個代碼 – Sergey

+0

你有沒有嘗試在調用'gdiplus.h'之前強制添加'Unknwn.h'頭文件? – Cedekasme

+0

我想知道爲什麼不把它包含在gdi頭文件中?它幫助!謝謝。將它添加到答案中。 – Sergey