Was is in dieser funktion falsch



  • wieso PS3??

    und bücher habe ich genug aber ich weis net was ich hir falsch mache

    #define WINDOW_CLASS_NAME "GameShell Window"
    #define WIN32_LEAN_AND_MEAN
    ////////////////////
    // INCLUDES
    /////////////////////
    
    #include<windows.h>
    
    //-------------
    //macros
    //-------------
    #define KEWDOWN(vk_code) ((GetAsyncKeyState(vk_code)&0x8000)?1:0)
    #define KEYUP(vk_code) ((GetAsyncKeyState (vk_code)&0x8000)?0:1)
    
    //-----------------------
    //global
    //-----------------------
    
    HWND main_window_handle = 0;
    HINSTANCE hinstance_app = 0;
    
    //----------------------
    //wichtige game funktions prototypen
    //----------------------
    
    void Game_Shutdown(void);
    void Game_Init(void);
    void Game_Main(void);
    
    //-----------------------
    // funktions definitionen
    //-------------------
    LRESULT CALLBACK WindowProc(HWND hwnd,
    UINT msg,
    WPARAM wparam,
    LPARAM lparam)
    {
           PAINTSTRUCT ps;
           HDC         hdc;
           // NACHRICHTEN VERERBEITUNG
           switch(msg)
           {
                      case WM_CREATE:
                      {
                           return(0);
                      }
                      break;
    
                      case WM_PAINT:
                      {
                           hdc = BeginPaint (hwnd ,&ps);
                           EndPaint (hwnd,&ps);
                           return (0);
                           }
                      break;
    
                      case WM_DESTROY:
                      {
                           PostQuitMessage(0);
                           return (0);
                           }
                      break;
    
                      default:
                              break;
                              }
                      return (DefWindowProc(hwnd,msg,wparam,lparam));
                      }
           //////////////////////////////////////////////part 2
           int WINAPI WinMain (HINSTANCE hinstance,
           HINSTANCE hprevinstance,
           LPSTR lpcmdline,
           int ncmdshow)
           {
               WNDCLASSEX winclass;
               HWND       hwnd;
               MSG        msg;
    
               //Fenster eigenschaften festlegen:
                         winclass.cbSize         =sizeof(WNDCLASSEX);
                         winclass.style          =CS_HREDRAW | CS_VREDRAW;
                         winclass.lpfnWndProc    =WindowProc;
                         winclass.cbClsExtra     =0;
                         winclass.cbWndExtra     =0;
                         winclass.hInstance      =hinstance;
                         winclass.hIcon          =LoadIcon(NULL,IDI_APPLICATION);
                         winclass.hCursor        =LoadCursor(0,IDC_ARROW);
                         winclass.hbrBackground  =(HBRUSH)GetStockObject(BLACK_BRUSH);
                         winclass.lpszMenuName   =NULL;
                         winclass.lpszClassName  =WINDOW_CLASS_NAME;
                         winclass.hIconSm        =LoadIcon(0,IDI_APPLICATION);
    
                         hinstance_app = hinstance;
    
                         if (!RegisterClassEx(&winclass))
                         return (0);
                         if (!(hwnd =CreateWindowEx(0,WINDOW_CLASS_NAME,
                         "MY GAME SHELL",
                         WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                         0,0,
                         800,600,
                         0,
                         0,
                         hinstance,
                         NULL)))
               return(0);
    
               main_window_handle = hwnd;
    
               Game_Init();
    
               while(true)//nachrichten weiterleitung
               {
                                        if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
                                        {
                                         if(msg.message == WM_QUIT)
                                         break;
                                         TranslateMessage(&msg);
                                         DispatchMessage(&msg);
                                         }
                                         Game_Main();
                                         }
                                         Game_Shutdown();
                                         return(msg.wParam);
                                        }
               void Game_Init(void)
               {
               }
               ///////////77
    
               void Game_Main(void)
               {
                    [b]if (KEYDOWN( VK_ESCAPE ))[/b]<--Der fehler in dieser reie
                       SendMessage(main_window_habdle,VM_CLOSE,0,0);
    
               }
                       //////////////////aus machen
                       void Game_Shutdown(void)
                       {
    
                            }
    


  • Was für ein Fehler denn?



  • Schau mal genau hin, wie dein Makro (bei der Definition!) heißt (LOL -)



  • ich persönlich löse sollche Sachen immer über die Nachrichtenschleife

    switch(msg) 
    {
    	case WM_KEYDOWN:
    	{
    		//Taste ESC
    		if(LOWORD(wparam)==27) 
    		{
    		}
    	} break;
    }
    

    Wenn du deinen Makro-Schreibfehler behoben hast, wirst in der nächsten Zeile gleich den nächsten Fehler bekommen 😃



  • BasicMan01 schrieb:

    ich persönlich löse sollche Sachen immer über die Nachrichtenschleife

    Das ist manchmal aber keine Alternative zum Polling.



  • Der makro

    #define KEWDOWN(vk_code) ((GetAsyncKeyState(vk_code)&0x8000)?1:0)
    

    ////////Der fehler

    void Game_Main(void)
               {
                    if (KEYDOWN( VK_ESCAPE ))<--Der fehler in dieser reie
                       SendMessage(main_window_habdle,VM_CLOSE,0,0);
    
               }
    


  • Es muss natürlich lauten:

    if (KEWDOWN( VK_ESCAPE ))
    

    😃



  • Jetzt is das falsch
    SendMessage(main_window_habdle,VM_CLOSE,0,0);
    Ich dreh gleich durch



  • ritmi schrieb:

    Der makro

    #define KEWDOWN(vk_code) ((GetAsyncKeyState(vk_code)&0x8000)?1:0)
    

    ////////Der fehler

    void Game_Main(void)
               {
                    if (KEYDOWN( VK_ESCAPE ))<--Der fehler in dieser reie
                       SendMessage(main_window_habdle,VM_CLOSE,0,0);
                       
                       
               }
    

    Was hat das KEYDOWN-Makro mit dem KEWDOWN-Makro zu tun? Ausserdem hast Du in der Reihe, die Du kennzeichnest tatsächlich einen Fehler. Vermutest Du in der Reihe einen Fehler oder willst Du nur reiern, weil Du einen Fehler gemacht hast 😃 🤡 .



  • ne bei devc++ zeigt es ahn ihn welcher reie der fehler ist

    http://i50.tinypic.com/9tmqms.jpgHir fehlt definitiev die img bbcode



  • ritmi schrieb:

    Jetzt is das falsch
    SendMessage(main_window_habdle,VM_CLOSE,0,0);
    Ich dreh gleich durch

    Da ist Microsoft wohl ein Fehler unterlaufen. Im Header steht tatsächlich WM_CLOSE statt VM_CLOSE. Am besten direkt ändern und einen Bugreport schicken, oder so!



  • BasicMan01 schrieb:

    Wenn du deinen Makro-Schreibfehler behoben hast, wirst in der nächsten Zeile gleich den nächsten Fehler bekommen 😃

    Soviel zu deinem HABDLE

    David_pb schrieb:

    Das ist manchmal aber keine Alternative zum Polling.

    Das ist wohl wahr 😃
    Bis grade eben wusste ich net mal, was Polling ist. Gut des es google gibt.



  • oki fehler behoben Dank euch:D

    hab bei handle b mit n verwechselt 😛
    Danke vielmals:D
    TOLLER SUPPORT Schnell und zuverlesig


Anmelden zum Antworten