c++ gehler ? kann wer helfen ?



  • kann jemand mir sagen was ich falsch mache ?
    #include <Windows.h>
    #include <gl/GL.h>
    #include <gl/GLU.h>
    
    #pragma comment(lib, "opengl32.lib")
    #pragma comment(lib, "glu32.lib")
    
    HDC hDC = 0;
    HGLRC hRC = 0;
    HWND hWnd = 0;
    HINSTANCE hInstance;		
    LRESULT	CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);	
    RECT window;
    
    bool keys[256];
    bool active = true;
    bool fullscreen = false;
    
    bool InitGL();
    void ReSizeGLScene(unsigned int width, unsigned int height);
    bool DrawGLScene();
    bool KillGLWindow();
    bool CreateGLWindow(LPCWSTR title, int width, int height, int bits, bool fullscreenflag);
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR nlpCmdLine, int nCmdShow);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR nlpCmdLine, int nCmdShow)
    {
    	MSG	msg;									
    	bool done = false;								
    
    	if(MessageBox(0, L"Im Vollbildmodus starten?", L"Vollbild?", MB_YESNO | MB_ICONQUESTION) == IDYES) 
    	{
    		fullscreen = true;							
    	}
    
    	if(!CreateGLWindow(L"OpenGL", 640, 480, 16, fullscreen))
    	{
    		return 0;								
    	}
    
    	while(!done)								
    	{
    		if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))	
    		{
    			if(msg.message == WM_QUIT)				
    			{
    				done = true;							
    			}
    			else									
    			{
    				TranslateMessage(&msg);				
    				DispatchMessage(&msg);			
    			}
    		}
    		else										
    		{
    			if((active && !DrawGLScene()) || keys[VK_ESCAPE])	
    			{
    				done = true;							
    			}
    			else									
    			{
    				SwapBuffers(hDC);					
    			}
    		}	
    	}
    
    	KillGLWindow();	
    
    	return (msg.wParam);						
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	switch(uMsg)									
    	{
    		case WM_ACTIVATE:							
    		{
    			if(!HIWORD(wParam))					
    			{
    				active = true;						
    			}
    			else
    			{
    				active = false;						
    			}
    
    			return 0;								
    		}
    
    		case WM_SYSCOMMAND:							
    		{
    			switch(wParam)							
    			{
    				case SC_SCREENSAVE:					
    				case SC_MONITORPOWER:				
    				return 0;							
    			}
    
    			break;									
    		}
    
    		case WM_KEYDOWN:							
    		{
    			keys[wParam] = true;
    
    			return 0;								
    		}
    
    		case WM_KEYUP:								
    		{
    			keys[wParam] = false;	
    
    			return 0;							
    		}
    
    		case WM_SIZE:								
    		{
    			ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));  
    
    			return 0;							
    		}
    	}
    
    	return DefWindowProc(hWnd,uMsg,wParam,lParam);
    }
    
    bool CreateGLWindow(LPCWSTR title, int width, int height, int bits, bool fullscreenflag)
    {
    	GLuint PixelFormat;			
    	WNDCLASS wc;						
    	DWORD dwExStyle;				
    	DWORD dwStyle;				
    	RECT WindowRect;				
    	WindowRect.left = 0;			
    	WindowRect.right = width;		
    	WindowRect.top = 0;				
    	WindowRect.bottom = height;		
    
    	fullscreen = fullscreenflag;	
    
    	hInstance			= GetModuleHandle(NULL);				
    	wc.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	
    	wc.lpfnWndProc		= (WNDPROC) WndProc;					
    	wc.cbClsExtra		= 0;									
    	wc.cbWndExtra		= 0;									
    	wc.hInstance		= hInstance;							
    	wc.hIcon			= LoadIcon(NULL, IDI_WINLOGO);			
    	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			
    	wc.hbrBackground	= NULL;									
    	wc.lpszMenuName		= NULL;									
    	wc.lpszClassName	= L"OpenGL";								
    
    	if(!RegisterClass(&wc))									
    	{
    		MessageBox(NULL, L"Window-Class konnte nicht regsitriert werden!", L"ERROR", MB_OK|MB_ICONEXCLAMATION);
    
    		return false;											
    	}
    
    	if(fullscreen)												
    	{
    		DEVMODE dmScreenSettings;								
    		memset(&dmScreenSettings, 0, sizeof(dmScreenSettings));	
    		dmScreenSettings.dmSize = sizeof(dmScreenSettings);		
    		dmScreenSettings.dmPelsWidth = width;				
    		dmScreenSettings.dmPelsHeight = height;				
    		dmScreenSettings.dmBitsPerPel = bits;					
    		dmScreenSettings.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
    
    		if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
    		{
    			if(MessageBox(0, L"Vollbild-Modus wird nicht unterstützt. Window-Mode nutzen?", L"OpenGl - Info", MB_YESNO|MB_ICONEXCLAMATION) == IDYES)
    			{
    				fullscreen = false;		
    			}
    			else
    			{
    				MessageBox(0, L"Programm wird beendet.", L"ERROR", MB_OK|MB_ICONSTOP);
    
    				return false;
    			}
    		}
    	}
    
    	if(fullscreen)												
    	{
    		dwExStyle = WS_EX_APPWINDOW;								
    		dwStyle = WS_POPUP;										
    		ShowCursor(FALSE);										
    	}
    	else
    	{
    		dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;			
    		dwStyle = WS_OVERLAPPEDWINDOW;							
    	}
    
    	AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle);	
    
    	if (!(hWnd = CreateWindowEx(dwExStyle, L"OpenGL", (LPCWSTR)title, dwStyle |	WS_CLIPSIBLINGS | WS_CLIPCHILDREN,					
    								0, 0, WindowRect.right - WindowRect.left, WindowRect.bottom - WindowRect.top,	
    								NULL, NULL, hInstance, NULL)))								
    	{
    		KillGLWindow();								
    		MessageBox(NULL, L"Fenster konnte nicht erstellt werden!", L"ERROR", MB_OK|MB_ICONEXCLAMATION);
    
    		return false;								
    	}
    
    	static PIXELFORMATDESCRIPTOR pfd =				
    	{
    	    sizeof(PIXELFORMATDESCRIPTOR), 
    		1,											
    		PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,								
    		bits,										
    		0, 0, 0, 0, 0, 0,							
    		0,											
    		0,											
    		0,											
    		0, 0, 0, 0,									
    		16,											
    		0,											
    		0,											
    		PFD_MAIN_PLANE,								
    		0,											
    		0, 0, 0										
    	};
    
    	hDC = GetDC(hWnd);					
    	PixelFormat = ChoosePixelFormat(hDC, &pfd);	
    	SetPixelFormat(hDC, PixelFormat, &pfd);		
    	hRC = wglCreateContext(hDC);				
    	wglMakeCurrent(hDC, hRC);					
    
    	ShowWindow(hWnd, SW_SHOW);						
    	SetForegroundWindow(hWnd);						
    	SetFocus(hWnd);									
    	ReSizeGLScene(width, height);					
    
    	if(!InitGL())									
    	{
    		KillGLWindow();								
    		MessageBox(NULL, L"Initialization Failed.", L"ERROR", MB_OK|MB_ICONEXCLAMATION);
    
    		return false;								
    	}
    
    	return true;								
    }
    
    bool KillGLWindow()								
    {
    	if(fullscreen)										
    	{
    		ChangeDisplaySettings(0, 0);					
    		ShowCursor(TRUE);								
    	}
    
    	if(hRC)											
    	{
    		wglMakeCurrent(0, 0);				
    		wglDeleteContext(hRC);					
    		hRC = 0;									
    	}
    
    	ReleaseDC(hWnd, hDC);				
    
    	DestroyWindow(hWnd);					
    
    	UnregisterClass(L"OpenGL", hInstance);	
    
    	return true;
    }
    
    bool InitGL()										
    {
    	//glEnable(GL_TEXTURE_2D);							
    	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);				
    	glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
    	glClearDepth(1.0);									
    	glDepthFunc(GL_LEQUAL);								
    	glEnable(GL_DEPTH_TEST);							
    	glShadeModel(GL_SMOOTH);							
    	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    
    	return true;										
    }
    
    void ReSizeGLScene(unsigned int width, unsigned int height)		
    {
    	if(height == 0)										
    		height = 1;										
    
    	glViewport(0, 0, width, height);						
    
    	glMatrixMode(GL_PROJECTION);						
    	glLoadIdentity();									
    
    	gluPerspective(45.0f, (float)width/(float)height, 0.1f, 500.0f);
    
    	glMatrixMode(GL_MODELVIEW);							
    	glLoadIdentity();									
    }
    
    bool DrawGLScene()									
    {
    	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	
    	glLoadIdentity();
    
    	return true;										
    }
    

    danke schon mal für die hilfe gruß cevin





  • Syntax_error schrieb:

    http://www.c-plusplus.net/forum/304133
    http://www.c-plusplus.net/forum/200753

    gruß
    syntax

    was habe ich falsch gemacht ? 😃
    ich denke ich bin im richtigen forum oder ?
    ich konnte leider am code nichts kürzen da ich nicht weiß wo der fehler liegt .....


  • Mod

    cevin schrieb:

    ich konnte leider am code nichts kürzen da ich nicht weiß wo der fehler liegt .....

    Ein Anfang(!) waere: Welcher Fehler?



  • das ist es ja ich habe keine ahnung ... ich kann leider nicht (warum auch immer ) microsoft c++ nicht benutzen ... und nehme da so ein programm was nur lesen und ausführen kann = es klappt oder es klappt nicht 😕



  • ahh ich habe die log datei gewunden ..

    Compiler: Default compiler
    Building Makefile: "C:\Dev-Cpp\Makefile.win"
    Führt make... aus
    make.exe -f "C:\Dev-Cpp\Makefile.win" all
    g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

    main.cpp: In function int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)': main.cpp:31: error: cannot convert \const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'

    main.cpp: In function bool CreateGLWindow(const WCHAR*, int, int, int, bool)': main.cpp:152: error: cannot convert \const wchar_t[7]' to `const CHAR*' in assignment

    main.cpp:156: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'
    main.cpp:173:30: converting to execution character set: Illegal byte sequence
    main.cpp:173: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'
    main.cpp:179: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'
    main.cpp:202: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__, HMENU__, HINSTANCE__, void)'
    main.cpp:205: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'

    main.cpp:243: error: cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'
    main.cpp: In function bool KillGLWindow()': main.cpp:270: error: cannot convert \const wchar_t*' to `const CHAR*' for argument `1' to `BOOL UnregisterClassA(const CHAR*, HINSTANCE__*)'

    make.exe: *** [main.o] Error 1

    Ausführung beendet



  • ohhh hab selbst 9 fehler beheben können aber ein fehler ist da noch

    if (!(hWnd = CreateWindowEx(dwExStyle, "OpenGL", (LPCWSTR)title, dwStyle |    WS_CLIPSIBLINGS | WS_CLIPCHILDREN,                    
                                    0, 0, WindowRect.right - WindowRect.left, WindowRect.bottom - WindowRect.top,    
                                    0, 0, hInstance, 0)))
    

    weiß hier jemand was ich falsch mache



  • cevin schrieb:

    [...] weiß hier jemand was ich falsch mache

    Ja. Schau dir doch mal die Links an welche syntax gepostet hat.



  • anneXus schrieb:

    cevin schrieb:

    [...] weiß hier jemand was ich falsch mache

    Ja. Schau dir doch mal die Links an welche syntax gepostet hat.

    das habe ich getan ... worauf : willst du hinnaus ? 😡 😃



  • 202 C:\Dev-Cpp\main.cpp cannot convert `const WCHAR*' to `const CHAR*' for argument `3' to `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__, HMENU__, HINSTANCE__, void)'

    hier falls du das meinst ? 🙂


  • Mod

    Mal ernsthaft: Wie kommst du zu diesem Programm? Niemand der Programme auf diesem Niveau schreibt stellt solche Fragen oder versteht den gezeigten Fehler nicht. Hast du einfach Code aus dem Netz zusammenkopiert und bekommst ihn jetzt nicht compiliert, weil du keine Ahnung von den Grundlagen hast? Sei ruhig ehrlich, wir sind hier kein Pranger, aber wir lassen uns auch nicht gerne veralbern.



  • @SeppJ dass das fertiger Code von irgend einem Tuturial/... ist dürfte doch wohl klar sein. Nur wieder mal komplett frech wie das hier einfach reingeklatscht wird. Hier Code *BAM*, was Fehler? Ohne Erklärung was er/sie/es überhaupt will.

    Hat in den letzten paar Tagen stark zugenommen. Ist grad Vollmond? Ferien? Kann mir das nicht so ganz erklären...



  • wieso verarschen ?? Nein das ist nicht meiner wie gesagt ich bin ein anfänger ... ich kopiere codes aus dem internet + die bücher die ich lese da lerne ich drauß ,,, ich habe bissher nur ein kleines 2 auto spiel gemacht 😕 aber wie auch immer ausirgend einen grund funzt der code nicht ... ich habe ihn im ganzen und den betrofenen teil sowie die fehler meldung gepostet .... kann mir jemad helfen was daran nicht stimmen soll



  • hustbaer schrieb:

    @SeppJ dass das fertiger Code von irgend einem Tuturial/... ist dürfte doch wohl klar sein. Nur wieder mal komplett frech wie das hier einfach reingeklatscht wird. Hier Code *BAM*, was Fehler? Ohne Erklärung was er/sie/es überhaupt will.

    Hat in den letzten paar Tagen stark zugenommen. Ist grad Vollmond? Ferien? Kann mir das nicht so ganz erklären...

    und was heißt hier frech ... ??? ich war höfflich und habe nett drum gebeten ... hat du dadurch das gefühl "eine autoritätsperson " zu sein ?? hört sich so an



  • Du klatscht uns hier einen Code hin, den eigentlich ein Anfänger garnienicht lesen und verstehen kann. Du darfst dir auf keinen Fall Code aus dem Internet kopieren und diesen dann mittels Buch analysieren. Beginne mit kleinen Sachen, schreib sie selber, versuch diese zu verstehen und arbeite dich hoch. So wie du das machst bist du zum Scheitern verurteilt, da du so gut wie keine Fortschritte machst.

    gruß
    syntax



  • @cevin
    Glaub was du willst.



  • ich mache sehr gute fortschritte ich habe vor 8 tagen damit angefangen und mache schon 2d spiele ... das finde ich immer komisch man stellt eine frage und bekommt alles ausser die antwort .. ist das nicht mir überlassen wie ich was mache ,,, ich habe nur eine antwort gebeten ... ps ich habe doch schon gesagt das es nicht von mir ist .... und ich habe selbst 19 von 20 fehler hin bekommen nur der letzte nicht



  • cevin schrieb:

    ich mache sehr gute fortschritte ich habe vor 8 tagen damit angefangen und mache schon 2d spiele

    😮 Das muss der neue Bjarne Stroustrup sein. Krieg ich ein Autogramm?? 🤡

    gruß
    syntax



  • Ändere alle LPCWSTR zu LPCSTR.
    Oder stell das Programm auf UNICODE um, und mach die ganzen L wieder vor die Strings die du in deiner heroischen 19/20 Fehlerbeseitigungsaktion weggemacht hast.

    Was das frech angeht: "kann jemand mir sagen was ich falsch mache ?" und dann > 300 Zeilen Code, ohne weiteren Hinweis auf irgendwas, das ist frech. Und dumm. Weil du andere, die dir sonst vielleicht gerne geholfen hätten, damit verärgerst.

    Wenn du willst dass man dir hilft, dann beschreibe was du probiert hast, und was das Problem ist. Dazu gehört dass du dazuschreibst welche IDE du verwendest, und was der Fehler ist.

    Wenn du dagegen willst dass man dich für ein lästiges Kind hält, dann mach genau so weiter wie in diesem Beitrag.



  • hmmm also soweit ich seh ist das alles schon auf lpstr ...


Anmelden zum Antworten