Zugriffverletzung: Unbehandelte Außnahme bei ... ????



  • Hi Leute!
    ich hab wieder ein Problem:
    ich habe versucht ein ganz schlichtes programm zu schreiben, welches nur einzelne pixel rot färbt xD
    da ist aber ein problem^^ während dem debuggen kommt diese warnmeldung:

    Unbehandelte Ausnahme bei 0x769a9247 in Punkte.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.

    dann kann ich entweder "weiter"(was aber nichts bringt) und "unterbrechen" drücken,dann haält der debuger an.

    wenn ich dann den debuger beende, steht in der debuger ausgabe:

    "Punkte.exe": "D:\C++ Dateien\Punkte\Debug\Punkte.exe" geladen, Symbole wurden geladen.
    "Punkte.exe": "C:\Windows\System32\ntdll.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\kernel32.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\user32.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\gdi32.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\advapi32.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\rpcrt4.dll" wurde geladen
    "Punkte.exe": "C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\imm32.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\msctf.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\msvcrt.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\lpk.dll" wurde geladen
    "Punkte.exe": "C:\Windows\System32\usp10.dll" wurde geladen
    Eine Ausnahme (erste Chance) bei 0x769a9247 in Punkte.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.
    Unbehandelte Ausnahme bei 0x769a9247 in Punkte.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xcccccccc.
    Das Programm "[2036] Punkte.exe: Systemeigen" wurde mit Code -1073741819 (0xc0000005) beendet.
    

    Dies ist das Programm:

    #include <windows.h>
    
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
    
    int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
    {
    	MSG			msg;
    	HWND		hWnd;
    	WNDCLASS	wc;
    
    	char szAppName[] = "Pixel einfärben";
    
    	wc.cbClsExtra		= 0;
    	wc.cbWndExtra		= 0;
    	wc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
    	wc.hCursor			= LoadCursor(hInstance,IDC_ARROW);
    	wc.hIcon			= LoadIcon  (hInstance,IDI_APPLICATION);
    	wc.hInstance		= hInstance;
    	wc.lpfnWndProc		= WndProc;
    	wc.lpszClassName	= szAppName;
    	wc.style			= CS_HREDRAW | CS_VREDRAW;
    
    	RegisterClass(&wc);
    
    	hWnd = CreateWindow(szAppName,szAppName,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;
    		}
    
    	case WM_RBUTTONDOWN:
    		{
    			InvalidateRect(hWnd,NULL,TRUE);
    			return 0;
    		}
    
    	case WM_LBUTTONDOWN:
    		{
    
    			HDC		hDC = GetDC(hWnd);
    
    				SetPixel(hDC,LOWORD(lParam),HIWORD(lParam),RGB(255,0,0));
    
    			ReleaseDC(hWnd,hDC);
    
    			return 0;
    		}
    
    		return 0;
    
    	}
    
    	return DefWindowProc(hWnd,message,wParam,lParam);
    }
    

    Bitte helft mir...
    Ich bin anfänger und möchte nicht schon bei so einfachen programmen verzwifeln xD

    MFG Mr. BigGeLs



  • WNDCLASS    wc = { 0 };
    

    könnte helfen. wc.lpszMenuName zeigt ansonsten auf eine ungültige Speicheradresse.


Anmelden zum Antworten