Narf! Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 Hallo mal wieder! Ich sitze nun schon 'ne ganze Weile an dem verflixten Ding: Ich lasse den Nutzer über CColorDialog eine Farbe auswählen, diese möchte ich in die Form #ffffff bringen, um sie in einem HTML-Dokument zu verwenden. Dazu habe ich die Funktion RGBToHtml(COLORREF color, LPTSTR out, long Buffer) gefunden. Meine Funktion sieht so aus: #include "atlutil.h" ... CColorDialog color(RGB(255, 128, 0), CC_FULLOPEN); COLORREF col; LPTSTR htmlCol; if(color.DoModal()==IDOK) { col=color.GetColor(); RGBToHtml(col, htmlCol, 7); }//end if(color.DoModal()==IDOK) Das Problem ist, dass ich keinen Farbwert in htmlCol bekomme. Ich habe es mit LPTSTR *htmlCol und LPTSTR htmlCol[8] versucht, es passierte nichts. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 LPTSTR htmlCol;Das ist ein uninitialisierter Zeiger. Schlecht. LPTSTR *htmlColDas ist ein uninitialisierter Zeiger auf einen Zeiger. Passt nicht. LPTSTR htmlCol[8]Das ist ein Array von uninitialiserten Zeigern. Passt auch nicht. TCHAR htmlCol[8]; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Narf! Geschrieben 30. Juni 2005 Autor Teilen Geschrieben 30. Juni 2005 Es klappt, wie immer. #include "atlutil.h" ... CColorDialog color(RGB(255, 128, 0), CC_FULLOPEN); COLORREF col; TCHAR htmlCol[8]; if(color.DoModal()==IDOK) { col=color.GetColor(); RGBToHtml(col, htmlCol, 8); }//end if(color.DoModal()==IDOK) Da habe ich aber mal noch eine Frage: Warum kommt es oft vor, dass die Dateitypen, die als Argument für eine Funktion vorgegeben sind, nicht funktionieren; wie hier TCHAR statt LPTSTR? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 Warum kommt es oft vor, dass die Dateitypen, die als Argument für eine Funktion vorgegeben sind, nicht funktionieren; wie hier TCHAR statt LPTSTR? :confused:Die funktionieren schon. Man muss sie nur richtig benutzen. In der Doku zu RGBToHtml steht: pbOut Caller-allocated buffer to receive the text for the HTML color value. Da steht, dass das ein Puffer sein muss, den der Aufrufer reserviert. Übergeben wird der in Form eines Zeigers (anders geht es in C nicht). Das Problem ist eigentlich meistens, dass man dem Parametertypen LPTSTR nicht direkt ansieht, dass es nur ein Zeiger ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 Das Problem ist eigentlich meistens, dass man dem Parametertypen LPTSTR nicht direkt ansieht, dass es nur ein Zeiger ist. Doch, anhand des Namens. Wenn ein lp davor steht kann man eigentlich davon ausgehen das es sich um einen Zeiger handelt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 Wenn ein lp davor steht kann man eigentlich davon ausgehen das es sich um einen Zeiger handelt.Das meinte ich mit "nicht direkt" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 30. Juni 2005 Teilen Geschrieben 30. Juni 2005 Ah Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.