Find mein Fehler bei OpenGL Vollbild Modus nicht...



  • Entschuldige, aber ich versteh nicht was du mit Einrücken meinst 😕
    Danke im Voraus.



  • Hallo

    Er meinte die Benutzung der Tab-Taste.

    chrische



  • Ja, aber das bringt doch wahrscheinlich nichts.
    Aber ich probier mal weiter....



  • Hallo

    Es hilft die Blöcke zu erkennen und somit fehlende Klammern zu finden.

    chrische



  • Naja, ich denke mal ich bin schon etwas weiter. Ich bin jetzt soweit das er mir nur nicht die Klammer nach dem BOOL CreateGLwindow(....) compilet, nämlich :
    {.
    Allerdings kann ich es mir nicht erklären weil ich die Klammer hinterher wieder schliesse.

    BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
    {    
    
    	GLuint		PixelFormat;			// Holds The Results After Searching For A Match
    	WNDCLASS	wc;						// Windows Class Structure
    	DWORD		dwExStyle;				// Window Extended Style
    	DWORD		dwStyle;				// Window Style
    	RECT		WindowRect;				// Grabs Rectangle Upper Left / Lower Right Values
    	WindowRect.left=(long)0;			// Set Left Value To 0
    	WindowRect.right=(long)width;		// Set Right Value To Requested Width
    	WindowRect.top=(long)0;				// Set Top Value To 0
    	WindowRect.bottom=(long)height;		// Set Bottom Value To Requested Height
    
    	fullscreen=fullscreenflag;			// Set The Global Fullscreen Flag
    
    	hInstance			= GetModuleHandle(NULL);				// Grab An Instance For Our Window
    	wc.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	// Redraw On Size, And Own DC For Window.
    	wc.lpfnWndProc		= (WNDPROC) WndProc;					// WndProc Handles Messages
    	wc.cbClsExtra		= 0;									// No Extra Window Data
    	wc.cbWndExtra		= 0;									// No Extra Window Data
    	wc.hInstance		= hInstance;							// Set The Instance
    	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			// Load The Default Icon
    	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// Load The Arrow Pointer
    	wc.hbrBackground	= NULL;									// No Background Required For GL
    	wc.lpszMenuName		= NULL;									// We Don't Want A Menu
    	wc.lpszClassName	= "OpenGL";								// Set The Class Name
    
    	if (!RegisterClass(&wc))									// Attempt To Register The Window Class
    	{
    		MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
    		return FALSE;											// Return FALSE
    	}
    
    	if(fullscreen)
    	{                                                                                                                  
                      DEVMODE dmScreenSettings;
                      dmScreenSettings.dmPelsWidth=width;
                      dmScreenSettings.dmPelsHeight=height;
                      dmScreenSettings.dmBitsPerPel=bits;
                      dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
                      }
    
                      if(fullscreen)
                      {
                                    dwExStyle=WS_EX_APPWINDOW;
                                    dwStyle=WS_POPUP;
                                    ShowCursor(TRUE);
                                    }
    
                                    else
                                    {
                                        dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
                                        dwStyle=WS_OVERLAPPEDWINDOW;
                                        }
    
                                        if(!(hWnd=CreateWindowEx(
                                        dwExStyle,
                                        "OpenGL",
                                        title,
                                        WS_CLIPSIBLINGS |
                                        WS_CLIPCHILDREN |
                                        dwStyle,
                                        0,0,
                                        WindowRect.right-WindowRect.left,
                                        WindowRect.bottom-WindowRect.top,
                                        NULL,
                                        NULL,
                                        hInstance,
                                        NULL)))
    
                                        static PIXELFORMATDESCRIPTOR pfd= 
                                        {
                                               sizeof(PIXELFORMATDESCRIPTOR),
                                               1,
                                               PFD_DRAW_TO_WINDOW |
                                               PFD_SUPPORT_OPENGL |
                                               PFD_DOUBLEBUFFER |
                                               PFD_TYPE_RGBA,
                                               0,0,0,0,0,0,
                                               0,
                                               0,
                                               0,
                                               0,0,0,0,
                                               0,
                                               PFD_MAIN_PLANE,
                                               0,
                                               0,0,0
                                               };
    
                                               ShowWindow(hWnd,SW_SHOW);
                                               SetForegroundWindow(hWnd);
                                               SetFocus(hWnd);
                                               ReSizeGLScene(width,height);
                                               return TRUE;
                                               }
    
                      LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
                      {
                              switch(message)
                              {
                                             case WM_CLOSE:
                                                  {
                                                           PostQuitMessage(0);
                                                           return 0;
                                                           }
    
                                                           }
                                                           return DefWindowProc(hWnd,message,wParam,lParam);
                                                           }
    
                                                           int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
                                                           {
                                                               MSG msg;
                                                               bool done=FALSE;
    
                                                               if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
                                                               {
                                                                                            fullscreen=FALSE;
                                                                                            }
    
                                                                                            if(!CreateGLWindow("Steve's Fenster",1024,768,32))
                                                                                            {
                                                                                                                        return 0;
                                                                                                                        }
    
                                                                                                                        while(!done)
                                                                                                                        {
                                                                                                                                    if(PeekMessage(&msg,0,0,NULL,PM_REMOVE))
                                                                                                                                    {
                                                                                                                                                                            if(msg.message=WM_QUIT)
                                                                                                                                                                            {
                                                                                                                                                                                                done=TRUE;
                                                                                                                                                                                                }
                                                                                                                                                                                                else
                                                                                                                                                                                                {
    
                                                               DispatchMessage(&msg);
                                                               TranslateMessage(&msg);
                                                               }
    
                                                             }
                                                             }
    
                                                             if(active)
                                                             {
                                                                       if(keys[VK_ESCAPE])
                                                                       {
                                                                                          done=TRUE;
                                                                                          }
                                                                                          else
                                                                                          {
                                                                                              DrawGLscene();
                                                                                              SwapBuffer(hDC);
                                                                                              }
                                                                                              }
    
                                                                                               KillGLWindow();
                                                                                              return (msg.wParam);
                                                                                              }
    


  • Wie wärs wenn du die Fehlermeldung hier postest?



  • Naja, ich denke mal ich bin schon etwas weiter. Ich bin jetzt soweit das er mir nur nicht die Klammer nach dem BOOL CreateGLwindow(....) compilet, nämlich :
    {.
    Allerdings kann ich es mir nicht erklären weil ich die Klammer hinterher wieder schliesse.

    BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
    {    
    
    	GLuint		PixelFormat;			// Holds The Results After Searching For A Match
    	WNDCLASS	wc;						// Windows Class Structure
    	DWORD		dwExStyle;				// Window Extended Style
    	DWORD		dwStyle;				// Window Style
    	RECT		WindowRect;				// Grabs Rectangle Upper Left / Lower Right Values
    	WindowRect.left=(long)0;			// Set Left Value To 0
    	WindowRect.right=(long)width;		// Set Right Value To Requested Width
    	WindowRect.top=(long)0;				// Set Top Value To 0
    	WindowRect.bottom=(long)height;		// Set Bottom Value To Requested Height
    
    	fullscreen=fullscreenflag;			// Set The Global Fullscreen Flag
    
    	hInstance			= GetModuleHandle(NULL);				// Grab An Instance For Our Window
    	wc.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	// Redraw On Size, And Own DC For Window.
    	wc.lpfnWndProc		= (WNDPROC) WndProc;					// WndProc Handles Messages
    	wc.cbClsExtra		= 0;									// No Extra Window Data
    	wc.cbWndExtra		= 0;									// No Extra Window Data
    	wc.hInstance		= hInstance;							// Set The Instance
    	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			// Load The Default Icon
    	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// Load The Arrow Pointer
    	wc.hbrBackground	= NULL;									// No Background Required For GL
    	wc.lpszMenuName		= NULL;									// We Don't Want A Menu
    	wc.lpszClassName	= "OpenGL";								// Set The Class Name
    
    	if (!RegisterClass(&wc))									// Attempt To Register The Window Class
    	{
    		MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMATION);
    		return FALSE;											// Return FALSE
    	}
    
    	if(fullscreen)
    	{                                                                                                                  
                      DEVMODE dmScreenSettings;
                      dmScreenSettings.dmPelsWidth=width;
                      dmScreenSettings.dmPelsHeight=height;
                      dmScreenSettings.dmBitsPerPel=bits;
                      dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
                      }
    
                      if(fullscreen)
                      {
                                    dwExStyle=WS_EX_APPWINDOW;
                                    dwStyle=WS_POPUP;
                                    ShowCursor(TRUE);
                                    }
    
                                    else
                                    {
                                        dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
                                        dwStyle=WS_OVERLAPPEDWINDOW;
                                        }
    
                                        if(!(hWnd=CreateWindowEx(
                                        dwExStyle,
                                        "OpenGL",
                                        title,
                                        WS_CLIPSIBLINGS |
                                        WS_CLIPCHILDREN |
                                        dwStyle,
                                        0,0,
                                        WindowRect.right-WindowRect.left,
                                        WindowRect.bottom-WindowRect.top,
                                        NULL,
                                        NULL,
                                        hInstance,
                                        NULL)))
    
                                        static PIXELFORMATDESCRIPTOR pfd= 
                                        {
                                               sizeof(PIXELFORMATDESCRIPTOR),
                                               1,
                                               PFD_DRAW_TO_WINDOW |
                                               PFD_SUPPORT_OPENGL |
                                               PFD_DOUBLEBUFFER |
                                               PFD_TYPE_RGBA,
                                               0,0,0,0,0,0,
                                               0,
                                               0,
                                               0,
                                               0,0,0,0,
                                               0,
                                               PFD_MAIN_PLANE,
                                               0,
                                               0,0,0
                                               };
    
                                               ShowWindow(hWnd,SW_SHOW);
                                               SetForegroundWindow(hWnd);
                                               SetFocus(hWnd);
                                               ReSizeGLScene(width,height);
                                               return TRUE;
                                               }
    
                      LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
                      {
                              switch(message)
                              {
                                             case WM_CLOSE:
                                                  {
                                                           PostQuitMessage(0);
                                                           return 0;
                                                           }
    
                                                           }
                                                           return DefWindowProc(hWnd,message,wParam,lParam);
                                                           }
    
                                                           int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
                                                           {
                                                               MSG msg;
                                                               bool done=FALSE;
    
                                                               if (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO)
                                                               {
                                                                                            fullscreen=FALSE;
                                                                                            }
    
                                                                                            if(!CreateGLWindow("Steve's Fenster",1024,768,32))
                                                                                            {
                                                                                                                        return 0;
                                                                                                                        }
    
                                                                                                                        while(!done)
                                                                                                                        {
                                                                                                                                    if(PeekMessage(&msg,0,0,NULL,PM_REMOVE))
                                                                                                                                    {
                                                                                                                                                                            if(msg.message=WM_QUIT)
                                                                                                                                                                            {
                                                                                                                                                                                                done=TRUE;
                                                                                                                                                                                                }
                                                                                                                                                                                                else
                                                                                                                                                                                                {
    
                                                               DispatchMessage(&msg);
                                                               TranslateMessage(&msg);
                                                               }
    
                                                             }
                                                             }
    
                                                             if(active)
                                                             {
                                                                       if(keys[VK_ESCAPE])
                                                                       {
                                                                                          done=TRUE;
                                                                                          }
                                                                                          else
                                                                                          {
                                                                                              DrawGLscene();
                                                                                              SwapBuffer(hDC);
                                                                                              }
                                                                                              }
    
                                                                                               KillGLWindow();
                                                                                              return (msg.wParam);
                                                                                              }
    


  • weiss denn wirklich keiner die Lösung/Antwort ?



  • du bist lustig.



  • Hallo

    Warum schreibst du uns nicht, was der Compiler meldet?

    chrische



  • Compiler Fehlermeldung :
    In function BOOL CreateGLWindow(char*, int, int, int, bool)': a function-definition is not allowed here before '{' token 168 D:\\Dokumente und expected,' or `;' before '{' token



  • Ich wiess jetzt wenigstens shcon einmal, das es von diesem Code stück abhängt :

    BOOL CreateGLWindow(char* title,int width,int height,int bits,bool fullscreenflag)
    		{
    

    Der Compiler sagt mir dann immer das er die Klammer nicht compilen kann, weil
    danach eine Variablen deklaration folgt.
    Danke im Voraus.



  • Bei CreateGLWindow ist keine Funktionsdefinition erlaubt vor einenm {, stattdessen wird ein ; oder , erwartet. f'`8k

    Autocogito

    Gruß, TGGC (making great games since 1992)


Anmelden zum Antworten