Einbinden von GDI+ bringt Fehler
-
Hallo,
wenn ich die GDIplus header einbinde bekomme ich diese Fehler;
[BCC32 Fehler] GdiplusMetaHeader.h(62): E2015 Mehrdeutigkeit zwischen 'INT16' und 'Igdiplus::INT16' Vollständiger Parser-Kontext Unit2.cpp(7): #include c:\programme\embarcadero\rad studio\7.0\include\gdiplus.h gdiplus.h(40): namespace Gdiplus gdiplus.h(53): #include c:\programme\embarcadero\rad studio\7.0\include\GdiplusMetaHeader.h GdiplusMetaHeader.h(61): class
was kann ich dageben machen!?
Danke
-
Kann ich nicht reproduzieren.
Bitte lauffähiges, vollständiges Minimalbeispiel posten.
-
Da gibts kein beispiel.
Ich erstelle ein neues Projekt, binde als header die gdiplus.h ein, kompiliere und schon bekomme ich die Fehler.
-
Ähhmm ja,
Tut mir leid wenn ich diese Header nicht kenne.
Welche Befehle enthalten sie und gibt es nicht ein Kongruenter Header für den BCB.
-
JBOpael schrieb:
wenn ich die GDIplus header einbinde
Mehrere? Welche? Probiers erstmal nur mit einem:
#include <gdiplus.h>
Welche BCB-Version hast du?
edit rad studio 7.0
-
JBOpael schrieb:
... binde als header die gdiplus.h ein...
in c++ sprache enspricht das
#include <gdiplus.h>
Oder muss ich noch was einbinden um GDI+ zu verwenden.
-
Ein GDI+ Setup muss gemacht werden. Beim BCB2009 reichen diese Zeilen.
// in *.h: private: Gdiplus::GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; // in *.cpp: #define STRICT #include <gdiplus.h> using namespace Gdiplus; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); } __fastcall TForm1::~TForm1(void) { Gdiplus::GdiplusShutdown(gdiplusToken); } // später void __fastcall TForm1::Button1Click(TObject *Sender) { Gdiplus::Graphics graphics(Image1->Canvas->Handle); //Load the image from a file Gdiplus::Image image(L"example01.gif"); graphics.DrawImage(&image, 0, 0, image.GetWidth(), image.GetHeight()); } //---------------------------------------------------------------------------
mfg
kpeter
-
kpeter schrieb:
#define STRICT
Das gehört eher in die Projektoptionen.
-
audacia schrieb:
kpeter schrieb:
#define STRICT
Das gehört eher in die Projektoptionen.
Klar.
Momentan komm ich nicht auf den embarcadero-Link zum Thema STRICT und VCL-Komponenten...
-
das hab ich auch gelesen und ausprobiert, aber das hat doch nichts mit der mehrdeutigkeit von UINT16 zu tuen, oder?!
-
JBOpael schrieb:
Da gibts kein beispiel.
Ich erstelle ein neues Projekt, binde als header die gdiplus.h ein, kompiliere und schon bekomme ich die Fehler.
So einfach kanns nicht sein.
Schuß ins Blaue: du verwendest IGDI+ und bindest es kurz davor ein. Lösung ist, IGDI+ nicht zu benutzen (in C++Builder ist es ohnehin einigermaßen überflüssig) oder aber gdiplus.h davor einzubinden.