COLORREF Fehler
-
ich hab keine ahnung warum aber meinem compiler passt folgende syntax nicht und ich komm nicht drauf. vielleicht seh ich den wald vor lauter bäumen nicht:
const COLORREF CPaintDlg::m_rcColors[8] = { RGB(0, 0, 0), //Schwarz RGB(0, 0, 255), //Blau RGB(0, 255, 0), //Grün RGB(0, 255, 255), //Cyan RGB(255, 0, 0), //Rot RGB(255, 0, 255), //Magenta RGB(255, 255, 0), //Gelb RGB(255, 255, 255), //Weiß };error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird übersprungen
Danke schonmal für die Hilfe
-
Das letzte Komma ist auf jeden Fall zu viel.

-
probier mal die 8 wegzulassen:
const COLORREF CPaintDlg::m_rcColors[] = { RGB(0, 0, 0), //Schwarz RGB(0, 0, 255), //Blau RGB(0, 255, 0), //Grün RGB(0, 255, 255), //Cyan RGB(255, 0, 0), //Rot RGB(255, 0, 255), //Magenta RGB(255, 255, 0), //Gelb RGB(255, 255, 255) //Weiß };bzw. kannste mal zeigen, was um diesen Schnipsel drum rum steht?
-
um diesen schnipsel herum steht(schon mit den vorgeschlagenen änderungen -> noch immer der selbe error):
#pragma once // CPaintDlg-Dialogfeld class CPaintDlg : public CDialog { DECLARE_DYNAMIC(CPaintDlg) public: const COLORREF CPaintDlg::m_rcColors[] = { RGB(0, 0, 0), //Schwarz RGB(0, 0, 255), //Blau RGB(0, 255, 0), //Grün RGB(0, 255, 255), //Cyan RGB(255, 0, 0), //Rot RGB(255, 0, 255), //Magenta RGB(255, 255, 0), //Gelb RGB(255, 255, 255) //Weiß }; CPaintDlg(CWnd* pParent = NULL); // Standardkonstruktor virtual ~CPaintDlg(); // Dialogfelddaten enum { IDD = IDD_PAINT_DLG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung public: static const COLORREF m_rcColors[8]; DECLARE_MESSAGE_MAP() private: void DrawLine(CPaintDC* pdc, int iColor); public: afx_msg void OnPaint(); };is ne eigene header datei. und diese wird dann in der dazugehörigen .cpp verwendet. und zwar definiere ich 6 od 7 verschiedene pinsel und stift ziele und will sie mir in einer schleife alle auf den bildschirm zeichnen lassen.
hab das ganze aus dem buch c++ in 21 tagen 1 zu 1 abgeschrieben...
-
Erstens: Im Inneren der Klassendefinition brauchst du die Scope-Zuordung ('CPaintDlg::') nicht mit anzugeben.
Zweitens: Normale (nicht-statische) Member darfst du nicht in der Definition initialisieren - das geht nur im Ctor (btw, für const-Arrays geht das gar nicht).
Drittens: Wenn alle deine Dialoge mit dem selben Array arbeiten wollen, solltest du es static setzen (und außerhalb der Klassendefinition initialisieren):
//im Header class CPaintDlg : public CDialog { DECLARE_DYNAMIC(CPaintDlg) public: static const COLORREF CPaintDlg::m_rcColors[8]; ... }; //in der .CPP const COLORREF CPaintDlg::m_rcColors[8] = { RGB(0, 0, 0), //Schwarz RGB(0, 0, 255), //Blau RGB(0, 255, 0), //Grün RGB(0, 255, 255), //Cyan RGB(255, 0, 0), //Rot RGB(255, 0, 255), //Magenta RGB(255, 255, 0), //Gelb RGB(255, 255, 255) //Weiß };