What is the error ??



  • @Badestrand: Jo lol 😃 ...



  • Ich hab noch ne Frage 🙂

    Wieso muss ich hier

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

    NULL angeben und nich das hwnd auf mein Fenster 😮



  • Damit du auch wirklich alle Nachrichten bekommst, die deinem Thread/Prozess zustehen.

    Siehe auch ➡ hier.



  • MSDN schrieb:

    Because the return value can be nonzero, zero, or -1, avoid code like this:

    while (GetMessage( lpMsg, hWnd, 0, 0)) ...

    The possibility of a -1 return value means that such code can lead to fatal application errors. Instead, use code like this:

    BOOL bRet;

    while( (bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0)
    {
    if (bRet == -1)
    {
    // handle the error and possibly exit
    }
    else
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    }

    Apropo... So eine gründliche Abfrage sehe ich vielleicht in 1 von 100 Source-Codes...



  • Badestrand schrieb:

    Apropo... So eine gründliche Abfrage sehe ich vielleicht in 1 von 100 Source-Codes...

    Hm jo stimmt, mir auch schon aufgefallen. Probleme macht das aber wohl in keinen von diesen (..."100 Source-Codes") 😃 ...



  • die funktion ZeroMemory() setzt eine als parameter übergebene struktur auf NULL sprich alles wird auf NULL gesetzt. wenn du diese funktion aufrufst bevor du die windowsclass ausfüllst kannste nix mehr vergessen...



  • NULL schrieb:

    die funktion ZeroMemory() setzt eine als parameter übergebene struktur auf NULL sprich alles wird auf NULL gesetzt. wenn du diese funktion aufrufst bevor du die windowsclass ausfüllst kannste nix mehr vergessen...

    ROFL, darum gehts gar nit 😃 ...

    Es ging (mir zu mindestens) um diese Prüfung:

    // ...
    if(bRet == -1)
    {
       // handle the error and possibly exit
    }
    // ...
    

    PS: ZeroMemory ist keine Funktion, sondern lediglich ein Makro, das sich dem Makro RtlZeroMemory bedient, welches
    wiederrum die Funktion memset aufruft 😉 .



  • CodeFinder schrieb:

    PS: ZeroMemory ist keine Funktion, sondern lediglich ein Makro, das sich dem Makro RtlZeroMemory bedient, welches
    wiederrum die Funktion memset aufruft 😉 .

    Und memset ist widerrum eine C-Funktion, kann das sein?



  • Badestrand schrieb:

    Und memset ist widerrum eine C-Funktion, kann das sein?

    Jo klar gehört zur CRT, wieso ?



  • NULL schrieb:

    die funktion ZeroMemory() setzt eine als parameter übergebene struktur auf NULL sprich alles wird auf NULL gesetzt.

    Da würde ich lieber default Initialisierung verwenden, zumal NULL hier kontextbezogen falsch verwendet wird.

    WNDCLASSEX windowinfo = {};
    

Anmelden zum Antworten