Gronek8624 Temat założony przez niniejszego użytkownika |
[Visual] Problem » 2011-02-01 18:08:23 Witam Od tygodnia pisze w Visual c++ EE i nie mam pojęcia co ten błąd znaczy First-chance exception at 0x00411703 in 1.exe: 0xC0000005: Access violation reading location 0x00000000. Unhandled exception at 0x00411703 in 1.exe: 0xC0000005: Access violation reading location 0x00000000. Program kompiluje się bez żadnych problemów lecz gdy automatycznie się uruchamia po kompilacji to wywala mi ten błąd Z góry dziękuje za pomoc |
|
michalp |
» 2011-02-01 18:09:51 Wygląda na to że odwołujesz się do nullowego wskaźnika (choć jest to tylko moje przypuszczenie). |
|
Gronek8624 Temat założony przez niniejszego użytkownika |
» 2011-02-01 18:15:26 Błąd mi ten zaczął wyskakiwać jak podzieliłem kod źródłowy który początkowo działał
main.cpp
#include "InitWin.h" #include <iostream> #include <conio.h> using namespace std;
IDirect3D9 * pD3D; IDirect3DDevice9 * pDev;
HWND hWnd;
bool Run = true;
int __stdcall WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { hWnd = InitWin( hWnd ); pD3D = Direct3DCreate9( D3D_SDK_VERSION ); D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( & d3dpp, sizeof( d3dpp ) ); d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.Windowed = true; d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8; pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, & d3dpp, & pDev ); MSG msg; while( Run ) { if( PeekMessage( & msg, 0, 0U, 0U, PM_REMOVE ) ) { if( msg.message == WM_DESTROY ) break; TranslateMessage( & msg ); DispatchMessage( & msg ); } else { pDev->Clear( 0, 0, D3DCLEAR_TARGET, 0xff00ff00, 1, 0 ); pDev->BeginScene(); pDev->EndScene(); pDev->Present( 0, 0, 0, 0 ); if( GetKeyState( VK_ESCAPE ) & 0x0800 ) { Run = false; } } } pDev->Release(); pD3D->Release(); }
InitWin.cpp
#include "InitWin.h"
#include <d3dx9.h> #pragma comment (lib, "d3d9.lib") #pragma comment (lib, "d3dx9.lib")
#include <iostream> #include <conio.h> using namespace std;
HWND InitWin( HWND d ) { HINSTANCE hProg = GetModuleHandle( 0 ); WNDCLASS wc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hProg; wc.lpfnWndProc = DefWindowProc; wc.lpszClassName = L"lkj"; wc.lpszMenuName = 0; wc.hbrBackground =( HBRUSH ) GetStockObject( BLACK_BRUSH ); wc.hIcon = LoadIcon( hProg, IDI_WINLOGO ); wc.style = CS_HREDRAW | CS_VREDRAW; wc.hCursor = LoadCursor( hProg, IDC_ARROW ); RegisterClass( & wc ); d = CreateWindowEx( 0, L"lol", TEXT( "The title of my window" ), WS_OVERLAPPEDWINDOW, 0, 0, 800, 600, 0, 0, hProg, 0 ); ShowWindow( d, 5 ); return( d ); };
|
|
ThudPoland |
» 2011-02-01 18:34:42 Pytanie jak wygląda kod. |
|
waxx |
» 2011-02-01 19:13:05 debuguj po kolei i sprawdz gdzie sie wysypuje |
|
yoogi |
» 2011-02-01 21:12:09 Mi się wydaję że błąd polega na tym że nie wolno uruchamiać automatycznie lepiej wejść w projekt/debug i tam masz plik *.exe od skompilowanej aplikacji i ona powinna się uruchomić normalnie ponieważ visual ma blokady np. na odczyt jakich kolwiek plików na dysku a jak normalnie uruchomisz program to nie ma tych blokad
aha dodam że tego twojego kodu nie czytałem bo mi się nie chciało :] a poza tym nie znam directa a czasami ten błąd mi wyskakuje jak zrobię program który nie działa prawidłowo przykładowo pierw zdeklaruję jakąś zmienną a potem ją usunę z pamięci a na końcu dam do niej odwołanie w jakiejś funkcji :] |
|
« 1 » |