Bild mit Desktop vergleichen

Dan logische Schlussvolgerung:D
benutze deine Funktion wie folgt:
PHP:
Bitmap bm2[5];
bm2[0]( L"C:\\bilder\\0.bmp" );
bm2[1]( L"C:\\bilder\\1.bmp" );
bm2[2]( L"C:\\bilder\\2.bmp" );
bm2[3]( L"C:\\bilder\\3.bmp" );
bm2[4]( L"C:\\bilder\\4.bmp" );

"Bitmap" ist allen Anscheins nach eine Klasse. Du legst 5 Objekte der Klasse an.
Siehe Zeile:
PHP:
Bitmap bm2[5];
Diese sind KEINE variablen! Mit der Zeile:
PHP:
bm2[0]( L"mein Pfad" );
rufst du den Dafaul-Konstruktor auf. Dies ist eine Funktion, ind der dan schon etwas passiert. Was genau da läuft kannst du naschsauen, in dem du auf deine Klasse klickst (als auf Bitmap) und dan REchtsklick->Deklaration.
Es solte sich die zugehörige CBitmap.h oder CBitmap.cpp öffnen;)

EDIT: Tip! Lege dein Bitmap array auserhalb jeglicher Funktionen auf! Alo direkt unter deinen Includes;) Somit ist sicher, dass rechtzeitig alle Variablen zur Verfügung stehen;)
 
Ich bekomm beim Array aber schon folgende fehlermeldungen:

Code:
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(30) : error C2512: 'Gdiplus::Bitmap': Kein geeigneter Standardkonstruktor verfügbar
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(31) : error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(32) : error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(33) : error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(34) : error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
1>c:\users\doc\documents\visual studio 2008\projects\uebung2\uebung2\main.cpp(35) : error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
 
Ach stimmt. Tschuldige, hatte ich obern überlesen. Bitmap ist eine KLassen, man kann immer nur ein OBjekt einer Klasse anlegen, also so:
PHP:
Bitmap bmp; //Bitmap ist die Klasse, und bmp deren Objekt

Ich sehe hier in deinem Fall leider keinen Ausweg mehr. Du musst das dynamisch regeln immer mit new ein neues Ojekt anlegen lassen, und ieses dan in einer Liste verwalten.

Oder du nimmst di unschöne Variante, und legst einfach dein Programm aus, angenommen für maximap 5 Bitmaps, und deklarierst das dan gleich so:
PHP:
Bitmap bm1( L"C:\\bilder\\0.bmp" );
Bitmap bm2( L"C:\\bilder\\1.bmp" );
Bitmap bm3( L"C:\\bilder\\2.bmp" );
Bitmap bm4( L"C:\\bilder\\3.bmp" );
Bitmap bm5( L"C:\\bilder\\4.bmp" );

Wenn du dich für die elegant Methode der Liste und der Dynamischen Speicher verwaltung entscheidest (nen sehr groser Lernanteil;)) helfe ich dir gerne dabei, da durchzusteigen;)
 
Hmmm da weiß ich gar net wie ich anfangen soll ^^
Ich hatte auch schon probiert per switch anweißung alle nach der reihe aufzurufen aber irgentwie gings nicht :/
Ich werd es jetzt noch auf eine andere Art versuchen und wenn das nicht klappt wäre mir deine Hilfe sehr Wilkommen :)

Kleine Frage noch:
gibts wo ne Site wo alle Funktionen on C++ aufgelistet sind?
 
Arg was nen Schwachfug :D
C++:
Bitmap  bm2[5];
Das legt dir einen Array von Bitmap-Objekten der Größe 5 an (d.h. Index von 0 ... 4). Dabei wird der Default-Konstruktor von Bitmap aufgerufen.
C++:
bm2[0]=( L"C:\\bilder\\0.bmp" );
Da versuchst du dann sozusagen folgendes aufzurufen:
C++:
Bitmap& Bitmap::operator=(const wchar_t*)
... Gibt es aber nicht. Was noch möglich wäre, ein impliziter Kontruktor von Bitmap mit nur dem String als Parameter ... aber nein auch das ist nich der fall ;)

C++:
bm2[0] = Bitmap( L"C:\\bilder\\0.bmp" );
da erzeugst du erst noch nen neues Bitmap-Objekt und weißt dann per Zuweisungsoperator dem Array-Element [0] das neue Bitmap-Objekt zu. Aber da der Zuweisungsoperator ja private ist ... vergiss es :p

C++:
Bitmap* bm2[5];
bm2[0] = new Bitmap( L"C:\\bilder\\0.bmp" );
// benutzen ...
Bitmap& bmp(*bm2[0]);
// am ende auch freigeben ...
delete bm2[0];
...

ehm und
C++:
Bitmap bmp[20]; //nun hast du speicher für 20 Bitmaps belegt
bmp[19]=NULL; /*Damit belegst du das lezte Element des Arrays*/
... dazu sag ich einfach mal nix ... nem Objekt NULL (0) zuweisen .... und der rest ist auch schwachsin :D
 
Also irgentwie komm ich mit dem Screenshot machen nicht klar :/
Hab grad ganz Google durchsucht aber keines der Scripte funktionierte irgentwie :/

Also ich will das zb Bitmap bm1 der Desktop ist wie stelle ich das am besten an ?
 
Moin,

Also irgentwie komm ich mit dem Screenshot machen nicht klar :/
Hab grad ganz Google durchsucht aber keines der Scripte funktionierte irgentwie :/

Hmm - also irgendwie funktioniert irgendwas nicht ....

Du sagst hier weder genau was nicht funktioniert noch lieferst Du irgendwelche Details (Code etc.)!

Und dann wunderst Du Dich, wenn keiner reagiert ? ? ?

Gruß
Klaus
 
Zurück