2011-09-05 19 views
7

Cuando incluyo gdiplus.h en un programa que compila bien la primera (hay muchos) error que consigo es:# include <gdiplus.h> causa de error

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

Parte de GdiplusImaging.h:

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

¿Por qué es así? ¿Dónde está esta clase IUnknown? ¿Y por qué no está en GdiplusImaging.h?

Mi sistema es Windows7 x64. VisualStudio 2010.

incluyendo parte:

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

¿Tiene 'windows.h' incluido antes de' gdiplus.h'? – eran

+0

No se puede reproducir. Algo ha sido golpeado con tu configuración. –

+0

Reinstalando sdk ahora, algo no funciona, creo que – Sergey

Respuesta

20

Estos son el estándar incluye para el uso de GDI +:

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

Utilicé este bloque exacto, pero aún tenía problemas con las macros mín/máx que no estaban definidas en el archivo gdiplustype.h (incluido internamente por gdiplus.h). El siguiente hilo ayudó -http: //stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c –

3

Usted debe tratar de añadir windows.h y Unknwn.h cabecera antes gdiplus.h

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

en realidad tengo exactamente este código – Sergey

+0

¿Has intentado obligar a agregar el encabezado 'Unknwn.h' antes de llamar a' gdiplus.h'? – Cedekasme

+0

Me pregunto ¿POR QUÉ no incluirlo en los encabezados gdi? ¡Eso ayudo! Gracias. Agrégalo a la respuesta. – Sergey

Cuestiones relacionadas