2011-09-05 10 views
7

Quando includo gdiplus.h in un programma che compila bene la prima (ci sono molti) l'errore che ottengo è:# include <gdiplus.h> causa errore

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

Parte di GdiplusImaging.h:

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

Perché è così? Dov'è questa classe IUnknown? E perché non è in GdiplusImaging.h?

Il mio sistema è Windows 7 x64. VisualStudio 2010.

Compresi parte:

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

Avete 'windows.h' incluso prima di' gdiplus.h'? – eran

+0

Impossibile riprodurre. Qualcosa è finito con la tua configurazione. –

+0

Reinstallare sdk ora, qualcosa di sbagliato con esso penso – Sergey

risposta

20

Questi sono i standard include per l'utilizzo di GDI +:

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

Ho usato questo blocco esatto, ma ho ancora riscontrato problemi con le macro min/max non definite nel file gdiplustype.h (che è incluso internamente da gdiplus.h). Il seguente thread ha aiutato -http: //stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c –

3

Si dovrebbe cercare di aggiungere windows.h e Unknwn.h intestazione prima gdiplus.h

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

in realtà ho esattamente questo codice – Sergey

+0

Hai provato a forzare l'aggiunta dell'intestazione 'Unknwn.h' prima di chiamare' gdiplus.h'? – Cedekasme

+0

Mi chiedo perché non includerlo nelle intestazioni gdi ?? Ha aiutato! Grazie. Aggiungilo alla risposta – Sergey

Problemi correlati