switch case - Fehler // Was meint der Compiler???
-
Hallo, kennt sich jemand mit folgender Fehlermeldung aus? Ich seh sie zum ersten mal und habe keine Ahnung was das Ganze bedeutet. In den anderen AppWndProc-Prozeduren kam dieser Fehler nie. Unten ist die GESAMTE Prozedur, wie ich sie im Code habe...
Die Fehlermeldung lautet:
"Case bypasses initialization of a local variable in function __stdcall AppWndProc(HWND__ *,unsigned int,unsigned int,long)"
LRESULT CALLBACK AppWndProc(HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam) { switch(uiMsg) { case WM_CREATE: button b1 (AppInstance, hMain, TEXT("bspName"),(HMENU)121); return 0; case WM_DESTROY: // Hier kommt ein ERROR!!! PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, uiMsg, wParam, lParam); }
-
Hallo,
du definierst eine Variable innerhalb des Switchblocks, nur kann auf diese
nur dann zugegriffen werden, wenn eine bestimmte Bedingung gegeben ist.Der Compiler schmeisst hier eine Warnung raus, weil es sein koennte, dass
du die Variable irrtuemlicherweise unter einem case definiert hast (es
koennte ja sein, dass du die Variable auch in einem anderen Fall verwenden
willst). Wenn du es wie folgt schreibst, sollte die Warnung nicht mehr
kommen:LRESULT CALLBACK AppWndProc(HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam) { switch(uiMsg) { case WM_CREATE: { //neuer block, neuer sichtbarkeitsbereich button b1 (AppInstance, hMain, TEXT("bspName"),(HMENU)121); return 0; } case WM_DESTROY: // Hier kommt ein ERROR!!! PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, uiMsg, wParam, lParam); }
Hoffe ich konnte helfen.
mfg
cu
-
Vieln dank! Nun ghets tatsächlich.....