Ich hab grad irgendwie ein Problem beim coden mit der Xlib und C++.
C++:
XVisualInfo *v; ...
if(v->class != TrueColor) {...}
Er nimmt nun aber das nicht an da 'class' doch in C++ ein reservierter Begriff ist. Wie komm ich da denn nun an den Wert ran? Oder liegt es an was anderem dass er die Zeile dauernd bemaengelt? -- Lebe als wolltest du täglich sterben
main_glx.cc:86: error: parse error before numeric constant
Aber das muss an dem class liegen. Ist ja unter C++ ein reserviertes Wort und darf daher doch nicht für Namen verwendet werden oder? Ich kann mir aber nicht vorstellen dass die Xlib inkompatibel zu C++ ist. -- Lebe als wolltest du täglich sterben
Also die Klammer hat auch nix gebracht. Ich hab auch schin dass probiert:
C++:
1: XVisualInfo *v; ... 2: int n = v->class; 3: if(n != TrueColor) {...}
Damit kommt dann der error nur in Zeile 2. Es liegt also an der class. Und TrueColor ist ein int und des class auch (hab extra in der Klassenreferenz nachgeschaut). Die Xlib ist aber sicher in C geschrieben. Dass heisst dass ich das gar net umgehen kann es sei denn ich steig auf C um oder pfusch in den X sourcen rum. So ein Schrott -- Lebe als wolltest du täglich sterben
Normalerweise verwendet man bei der X Programmierung und C++ an Stelle von class den Ausdruck c_class. Die Header der XLibrary sind entsprechend vorbereitet, zB:
C++:
typedefstruct { .... #if defined(__cplusplus) || defined(c_plusplus) int c_class; /* C++ */ #else intclass; #endif .... } XVisualInfo;
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)