GDI+ a Builder

0

Witam.
Znalazłem na stronie internetowej http://www.leunen.com/cbuilder/gdiplus.html opis jak w C++ Builderze podłączyć i korzystać z biblioteki GDI+. Posiadam wersje 2006 i u mnie wywala błąd:
[C++ Error] GdiplusGraphics.h(37): E2015 Ambiguity between 'Gdiplus::Graphics(void *)' and 'Gdiplus::Graphics(void *,int)'.
Nie wiem czy to jest wina tej wersji czy robie coś nie tak.

0

Pousuwaj domyślne paramerty w miejscach gdzie występuje błąd - nieładne ale skuteczne.

0

Oto czesc biblioteki:

#ifndef _GDIPLUSGRAPHICS_H
#define _GDIPLUSGRAPHICS_H
class Graphics : public GdiplusBase
{
public:
    friend class Region;
    friend class GraphicsPath;
    friend class Image;
    friend class Bitmap;
    friend class Metafile;
    friend class Font;
    friend class FontFamily;
    friend class FontCollection;
    friend class CachedBitmap;

    // Get a graphics context from an existing Win32 HDC or HWND
    static Graphics* FromHDC(IN HDC hdc)
    {
        return new Graphics(hdc);<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    }

    static Graphics* FromHDC(IN HDC hdc,
                             IN HANDLE hdevice)
    {
        return new Graphics(hdc, hdevice);
    }

    static Graphics* FromHWND(IN HWND hwnd,
                              IN BOOL icm = FALSE)
    {
        return new Graphics(hwnd, icm);
    }

    static Graphics* FromImage(IN Image *image)
    {
        return new Graphics(image);
    }

    Graphics(IN HDC hdc)
    {
        GpGraphics *graphics = NULL;

        lastResult = DllExports::GdipCreateFromHDC(hdc, &graphics);

        SetNativeGraphics(graphics);
    }

    Graphics(IN HDC hdc,
             IN HANDLE hdevice)
    {
        GpGraphics *graphics = NULL;

        lastResult = DllExports::GdipCreateFromHDC2(hdc, hdevice, &graphics);

        SetNativeGraphics(graphics);
    }

    Graphics(IN HWND hwnd,
             IN BOOL icm = FALSE)
    {
        GpGraphics *graphics = NULL;

        if (icm)
        {
            lastResult = DllExports::GdipCreateFromHWNDICM(hwnd, &graphics);
        }
        else
        {
            lastResult = DllExports::GdipCreateFromHWND(hwnd, &graphics);
        }

        SetNativeGraphics(graphics);
    }

    Graphics(IN Image* image)
    {
        GpGraphics *graphics = NULL;

        if (image != NULL)
        {
            lastResult = DllExports::GdipGetImageGraphicsContext(
                                                                image->nativeImage, &graphics);
        }
        SetNativeGraphics(graphics);
    }
    }

zaznaczylem miejsce gdzie wystepuje blad.

0

Spróbuj:

    Graphics(IN HWND hwnd,
             IN BOOL icm/* = FALSE*/)
    {
       ....
    }
0

Dzięki zadziałało, ale pojawił się błąd linkiera:
[Linker Error] Error: Unresolved external 'GdiplusStartup' referenced from C:\DOCUMENTS AND SETTINGS\JACEK R\MY DOCUMENTS\BORLAND STUDIO PROJECTS\UNIT3.OBJ :(

0

A dodałeś LIB'a do projektu?

0

A jak mam dodać ten plik. Trzeba ustawić ścieżkę do tego pliku w opcjach projektu? (sory ale dopiero raczkuje w C++)

0

Opcja Add to project lub #pragma comment(lib,"gdiplus.lib") w jakimś pliku CPP.

0

Dzięki poszło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1