Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben
LPTSTR htmlCol;
Das ist ein uninitialisierter Zeiger. Schlecht.

LPTSTR *htmlCol
Das 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];

Geschrieben

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:

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...