programm schließt sich nicht



  • Hallo zusammen.
    Bin dabei WinAPI/c++ zu lernen.
    Mein problem ist das ich das gefühl habe das mein programm einfriert bzw sich nicht fließen lässt.

    #define STRICT
    #include <windows.h>
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    const char szAppName[] = "FunWarSuche v0.1";
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                            PSTR szCmdLine, int iCmdShow)
    {
                                            HWND hWnd;
                                            MSG msg;
                                            WNDCLASS wc;
                                            wc.style = CS_HREDRAW | CS_VREDRAW;
                                            wc.lpfnWndProc = WndProc;
                                            wc.cbClsExtra  = 0;
                                            wc.cbWndExtra  = 0;
                                            wc.hInstance   = hInstance;
                                            wc.hCursor     = LoadCursor(NULL,IDC_ARROW);
                                            wc.hIcon       = LoadIcon(NULL,IDI_APPLICATION);
                                            wc.hbrBackground =  (HBRUSH)GetStockObject(WHITE_BRUSH);
                                            wc.lpszClassName = szAppName;
                                            wc.lpszMenuName  = NULL;
                                            RegisterClass(&wc);
    
    hWnd = CreateWindow(szAppName,
                        "FunWarSuche v0.1",
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        NULL,
                        NULL,
                        hInstance,
                        NULL);
    
    ShowWindow(hWnd, iCmdShow);
    UpdateWindow(hWnd);
    
    while(GetMessage(&msg, NULL, 0, 0));
    {
                           TranslateMessage(&msg);
                           DispatchMessage(&msg);
    }
     return msg.wParam;
    }
     LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
             switch (message)
             {
                      case WM_DESTROY:
                           {
                                      PostQuitMessage(0);
                                      return 0;
                           }
             }
    
                      return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    Woran könnte es liegen?



  • Definiere mal dein Gefühl etwas näher ^^
    Meinst du der Prozess bleibt im TaskManager drin nachdem du das Programm geschlossen hast und das Fenster verschwunden ist?

    Ist das der komplette Code? Hast du am Compiler bestimmte Einstellungen verändert?
    Also was hier steht scheint mir auf den ersten Blick richtig zu sein.

    Greetz



  • while(GetMessage(&msg, NULL, 0, 0));
    -----------------------------------^



  • d4n1el schrieb:

    [...]while(GetMessage(&msg, NULL, 0, 0));
    {
                           TranslateMessage(&msg);
                           DispatchMessage(&msg);
    }[...]
    

    Direkt hinter dem while kommt nen ; - das ist der Fehler



  • oh danke es lag an den ";".



  • *umfall*
    JAAAA ... so gut sind meine Augen um die Uhrzeit nicht mehr 😉

    Greetz


Anmelden zum Antworten