Fehlermeldung bei der Verwendung von GDI+



  • Hi

    Ich wollte folgenden Quelltext den ich aus der MSDN habe mit TurboC++ compilieren:

    #include <windows.h>
    #include <gdiplus.h>
    #include <stdio.h>
    using namespace Gdiplus;
    
    INT main()
    {
       // Initialize GDI+.
       GdiplusStartupInput gdiplusStartupInput;
       ULONG_PTR           gdiplusToken;
       GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
    
       UINT  num;        // number of image decoders
       UINT  size;       // size, in bytes, of the image decoder array
    
       ImageCodecInfo* pImageCodecInfo;
    
       // How many decoders are there?
       // How big (in bytes) is the array of all ImageCodecInfo objects?
       GetImageDecodersSize(&num, &size);
    
       // Create a buffer large enough to hold the array of ImageCodecInfo
       // objects that will be returned by GetImageDecoders.
       pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
    
       // GetImageDecoders creates an array of ImageCodecInfo objects
       // and copies that array into a previously allocated buffer.
       // The third argument, imageCodecInfos, is a pointer to that buffer.
       GetImageDecoders(num, size, pImageCodecInfo);
    
       // Display the graphics file format (MimeType)
       // for each ImageCodecInfo object.
       for(UINT j = 0; j < num; ++j)
       {
    	  wprintf(L"%s\n", pImageCodecInfo[j].MimeType);
       }
    
       free(pImageCodecInfo);
       GdiplusShutdown(gdiplusToken);
       return 0;
    }
    

    Was zu folgender Fehlermeldung führt:

    [C++ Fehler] GdiplusGraphics.h(34): E2015 Mehrdeutigkeit zwischen 'Gdiplus::Graphics::Graphics(void *)' und 'Gdiplus::Graphics::Graphics(void *,int)'

    Hat irgendjemand eine Ahnung was es damit auf sich hat?

    Gruß
    rean



  • Öhm hast Du die Klasse 'Graphics' den überhaupt verwendet ? 🙄

    Wenn für den 2. Parameter des 2. Konstruktors ein Default-Parameter vorgehen ist, führt das zu einer Mehrdeutigkeit.

    Du kannst in diesem Fall einfach explizit einen Wert übergeben.


Anmelden zum Antworten