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) );
    
    } // WindowProc
    

    kommt folgende Fehlermeldung:
    http://www2.pic-upload.de/28.05.10/qz9aa4uihf5e.png

    lg
    Öl

    PS: 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 😉


Anmelden zum Antworten