Fehler in Programm
-
#include <windows.h> #include <mmsystem.h> // Prototypen // LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); HWND ErstelleHauptfenster (HINSTANCE hInst); void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst); #define ID_STATICTEXT 4000 #define ID_BTN_OPEN 4001 #define ID_BTN_CLOSE 4002 // HWND hText; HWND hOpen; HWND hClose; // Hauptprogramm // int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow) { HWND hWnd; // Fenster-Handle MSG message; // Nachricht // Hauptfenster erstellen hWnd = ErstelleHauptfenster (hInst); // Prüfen, ob alles glatt ging if (hWnd == NULL) return (0); // Alle Steuerelemente erstellen ErstelleSteuerelemente (hWnd, hInst); // Der "Herzschlag" des Programms // Hier werden alle Nachrichten abgeholt, // übersetzt und weitergeleitet // while (GetMessage (&message, NULL, 0, 0) ) { TranslateMessage (&message); DispatchMessage (&message); } // Programm beenden return (int)(message.wParam); } // WinMain // Erstelle Hauptfenster // // Hauptfenster erstellen und Handle zurückliefern // HWND ErstelleHauptfenster (HINSTANCE hInst) { HWND hWnd; // Fenster-Handle WNDCLASSEX windowclass; // Nachricht // Der Klassenname des Fensters ist frei wählbar const char szClassName[] = "CD"; // Struktur mit gewünschten Eigenschaften füllen // // Größe der Struktur zwischenspeichern windowclass.cbSize = sizeof (WNDCLASSEX); // Fenster soll beim Verschieben neu gezeichnet werden windowclass.style = CS_HREDRAW | CS_VREDRAW; // Zeiger auf Callback-Funktion windowclass.lpfnWndProc = WindowProc; // Keine erweiterten Einstellungen windowclass.cbClsExtra = 0; windowclass.cbWndExtra = 0; // Instanz speichern windowclass.hInstance = hInst; // Icons und Cursor festlegen windowclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); windowclass.hCursor = LoadCursor (NULL, IDC_ARROW); // Hintergrundfarbe festlegen windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1; // Ein Menü brauchen wir nicht windowclass.lpszMenuName = NULL; // Klassenname angeben windowclass.lpszClassName = szClassName; // Fensterklasse registrieren if (!RegisterClassEx (&windowclass) ) return (NULL); // Das Fenster erzeugen hWnd = CreateWindowEx (NULL, szClassName, "Bla", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 135, NULL, NULL, hInst, NULL); // Fensterhandle zurückgeben return (hWnd); } // ErstelleHauptfenster // ErstelleSteuerelemente // // Alle Steuerelemente erstellen // void ErstelleSteuerelemente (HWND hWnd, HINSTANCE hInst) { // Statischen Text als Child-Fenster erstellen // hText = CreateWindow ("STATIC", "Klick auf die Buttons um dein CD Laufwerk zu \n öffnen oder zu schließen", WS_VISIBLE | WS_CHILD | ES_CENTER, 1, 1, 300, 20, hWnd, (HMENU)ID_STATICTEXT, hInst, NULL); // hOpen = CreateWindow ("BUTTON", "Open", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 20, 50, 95, 40, hWnd, (HMENU)ID_BTN_OPEN, hInst, NULL); // hClose = CreateWindow ("BUTTON", "Close", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 175, 50, 95, 40, hWnd, (HMENU)ID_BTN_CLOSE, hInst, NULL); } // ErstelleSteuerelemente // Callback-Funktion zur Nachrichtenverarbeitung // LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { // Messages auswerten switch (message) { // Fenster schließen? (Auch Alt-F4) case WM_DESTROY: { PostQuitMessage (0); return (0); } case WM_COMMAND: { switch (wParam) { case ID_BTN_OPEN: { mciSendString("set cdaudio door open",0,0,0); return (0); } case ID_BTN_CLOSE: { mciSendString("set cdaudio door open",0,0,0); return (0); } return (0); } break; } } break; } return (DefWindowProc (hWnd, message, wParam, lParam) ); } // WindowProckommt folgende Fehlermeldung:
http://www2.pic-upload.de/28.05.10/qz9aa4uihf5e.pnglg
ÖlPS: Ich finde das Problem nicht
-
Vielleicht hast du den Sinn dieses Forums nicht oder falsch verstanden?
Wir sind hier keine Fehlersucher in langen Sourcecodes ohne Benennung des Problems. Bei konkret vorgetragenen Verständnisfragen gibt es sicher Hilfe!

-
Das break in Zeile 202 steht außerhalb des switch-Blocks.
du hast 7 geöffnete geschweifte klammern in der Callback-Funktion, jedoch 8 geschlossene. Das kann natürlich nicht stimmen.MfG, Jochen
-
Dein Screenshot lässt darauf deuten, das du Code::Blocks verwendest.
Unter Settings >> Editor... >> General settings im Bereich Indent options kannst
du mal den Punkt "Show indentation guides" anhaken. Der ist default ausgeschalten.
Er zeichnet dir kleine Hilfslinien zwischen den Anfangs -und End Klammern. Dann siehst du sehr gut, was zu was gehört