Ik ben bezig om een eigen implementatie van cd3dapplication te maken. Het bouwen en linken gaat goed maar bij het uitvoeren krijg ik een access violation. Mijn code is deels van mij zelf en deels komt het uit de voorbeelden van de SDK.
De error:
Unhandled exception in D3D_Mesh.exe: 0xC0000005: Access Violation
Dit gebeurt op de tweede regel van mijn MsgProc, dus waar de { staat
De code
Ik zal de gehele code niet posten aangezien hij daar nog geen eens komt:
De error:
Unhandled exception in D3D_Mesh.exe: 0xC0000005: Access Violation
Dit gebeurt op de tweede regel van mijn MsgProc, dus waar de { staat
De code
Ik zal de gehele code niet posten aangezien hij daar nog geen eens komt:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| class MyApp : public CD3DApplication { private: CD3DFont* m_pFont; D3DXMATRIX m_matView; D3DXMATRIX m_matProjection; pMyMesh aMeshA, aMeshB; public: MyApp(); LRESULT MsgProc(HWND hWnd,UINT uMmsg,WPARAM wParam,LPARAM lParam); protected: HRESULT ConfirmDevice(D3DCAPS9*, DWORD, D3DFORMAT, D3DFORMAT); HRESULT OneTimeSceneInit(); HRESULT InitDeviceObjects(); HRESULT InitScene(); HRESULT RestoreDeviceObjects(); HRESULT InvalidateDeviceObjects(); HRESULT DeleteDeviceObjects(); HRESULT Render(); HRESULT FrameMove(); HRESULT FinalCleanUp(); }; INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE, LPSTR, INT) { MyApp d3dApp; InitCommonControls(); if (FAILED(d3dApp.Create(hInst))) return 0; return d3dApp.Run(); } LRESULT MyApp::MsgProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { if (uMsg == WM_COMMAND) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: ValidateRect(hWnd, NULL); return 0; } } return MyApp::MsgProc(hWnd, uMsg, wParam, lParam); } |