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
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.