problem mit swith
-
moin, ichh abe ein problem:
int cSelect = SendMessage(hChannel, CB_GETCURSEL, 0, 0); switch(cSelect) { case index_design_0: MessageBox(NULL, "Desgin", "SinSupport", MB_OK); break; case index_code_0: break; case index_info_0: break; case index_info_1: break; case index_support_0: break; default: MessageBox(NULL, "Bitte wählen Sie ein Channel aus !", "SinSupport", MB_OK); }die indexe vonj der combobox werden in varibalen gespeichert und ich will jetzt rausfinden welche das sind...
abe rich bekomme en error:sinsupport.main.cpp: In function
LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)': sinsupport.main.cpp:189: error:index_design_0' cannot appear in a constant-expression
sinsupport.main.cpp:192: error:index\_code\_0' cannot appear in a constant-expression sinsupport.main.cpp:195: error:index_info_0' cannot appear in a constant-expression
sinsupport.main.cpp:198: error:index\_info\_1' cannot appear in a constant-expression sinsupport.main.cpp:201: error:index_support_0' cannot appear in a constant-expressionich benutze DevC++
-
Hallo
von welchem Typ sind index_design_0 und Konsorten?
Bedingungs-Ausdrücke in switch müßen konstant sein, wie die Fehlermeldung auch sagt.bis bald
akari
-
die variablen index_desgin_0, index_code_0 etc sind vom type int
-
Hallo
aber sie müßen zusätzlich noch const sein.
Eventuell ist es machbar, all diese Werte als Typen eines enums einzubinden.bis bald
akari
-
nagut, dann muss ich halt konstanten erstellen
-
const int cindex_design_0 = index_design_0; const int cindex_code_0 = index_code_0; const int cindex_info_0 = index_info_0; const int cindex_info_1 = index_info_1; const int cindex_support_0 = index_support_0; int cSelect = SendMessage(hChannel, CB_GETCURSEL, 0, 0); switch(cSelect) { case cindex_design_0: MessageBox(NULL, "Desgin", "SinSupport", MB_OK); break; case cindex_code_0: break; case cindex_info_0: break; case icndex_info_1: break; case cindex_support_0: break; default: MessageBox(NULL, "Bitte wählen Sie ein Channel aus !", "SinSupport", MB_OK); }so geht auch net

-
enum my_type { MY_TYPE_1, MY_TYPE_2, MY_TYPE_3 }; my_type a_type = ...; ... switch(a_type) { case MY_TYPE_1: ... break; case MY_TYPE_2: ... break; ... default: ... break; }
-
öhm habe en eror ^^
enum change{ cindex_design_0, cindex_code_0, cindex_info_0, cindex_info_1, cindex_support_0 }; int cSelect = SendMessage(hChannel, CB_GETCURSEL, 0, 0); change cselect = index_design_0, index_code_0, index_info_0, index_info_1, index_support_0; switch(cselect) { case cindex_design_0: MessageBox(NULL, "Desgin", "SinSupport", MB_OK); break; case cindex_code_0: break; case cindex_info_0: break; case cindex_info_1: break; case cindex_support_0: break; default: MessageBox(NULL, "Bitte wählen Sie ein Channel aus !", "SinSupport", MB_OK); }194 F:\Dev-Cpp\projects\sinsupport.main.cpp invalid conversion from `int' to `WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)::change'
-
Hallo
Was soll denn das sein?
change cselect = index_design_0, index_code_0, index_info_0, index_info_1, index_support_0;bis bald
akari
-
ein versuch ^ich weis net wie ich es machen kann
-
du kannst im enum auch angeben, welchen int-werten die einzelnen typen entsprechen sollen
bsp:
enum MEIN_ENUM { ERSTER_WERT = 2, ZWEITER_WERT = 99, DRITTER_WERT = 1337 };giebst du nichts an, also:
enum MEIN_ENUM { ERSTER_WERT, ZWEITER_WERT, DRITTER_WERT };macht der compiler daraus:
enum MEIN_ENUM { ERSTER_WERT = 0, ZWEITER_WERT = 1, DRITTER_WERT = 2 };eine variable vom einem enum-typ ist im grunde ein int, diese eigenschaft kannst du dir zu nutze machen:
d.h.nehmen wir mal an eine funktion ABC() kann entweder A, B oder C rausgeben.
Wobei eine 77 ein A bedeutet, ein 99 ein B und ein 102 ein C, dann kannst du das so machen:enum E_ABC { ABC_A = 77, ABC_B = 99, ABC_C = 102 }; E_ABC returnValue = (E_ABC) ABC(); // eventuell gehts auch ohne den (E_ABC)-Cast switch(returnValue) { case ABC_A: do_some_stuff(); break; case ABC_B: do_some_other_stuff(); break; case ABC_C: do_some_very_other_stuff(); break; default: ... // errormsg bzw. exception werfen break; }