2011-11-23 6 views
0

프로젝트를 만들고 게임을 실행할 때 항상이 오류가 발생합니다.Visual Studio 2008에서 f5와 ctrl + F5 사이의 버그를 수정하려면?

Unhandled exception at 0x76fb2073 in Screen.exe: 0xC0000005: Access violation writing location 0x00000338 or sometimes 0x00000000. 

이 오류를 디버깅 할 때 free.c 소스 파일을 볼 수 있습니다.

나는이 디버그 경로를 추적

, 나는 그 오류를 발견
 else // __active_heap == __SYSTEM_HEAP 
#endif /* _WIN64 */ 
     { 
      retval = HeapFree(_crtheap, 0, pBlock); 
      **if (retval == 0)     // Here, error occured** 
      { 
       errno = _get_errno_from_oserr(GetLastError()); 
      } 
     } 
} 

......

은 ..... 내 screen.cpp 파일에이 라인에 발생했습니다.

if(FAILED(D3DXLoadMeshFromX(szName, D3DXMESH_SYSTEMMEM, 
     m_pd3dDevice, &pAdjacencyBuffer, 
     &pD3DXMtrlBuffer, NULL, &pMesh->dwNumMaterial, 
     &pMesh->pMesh))) 

이 게임을 실행할 때 항상이 오류가 발생하는 이유를 알 수 없습니다.

도움이 필요하십니까?

아, 네.

나는 한 가지를 용서했습니다.

키 - F5 키를 눌러 프로젝트를 실행할 때 전체 화면 또는 창 모드에서 실행해도 게임이 올바르게 작동합니다.

전용 Ctrl + F5를 누르면 오류가 발생합니다.

+0

코드가 NULL 포인터를 역 참조하려고합니다. –

+0

음, 매개 변수의 값은 다음과 같습니다. szName는 "hole.map는" – bTagTiger

+0

m_pd3dDevice는 0x34847302 pAdjacencyBuffer은 NULL입니다 pD3DXMtrlBuffer은 NULL입니다 pMesh-> dwNumMaterial은 NULL입니다 pMesh-> pMesh는 NULL – bTagTiger

답변

-2

나는이 문제를 해결했다. 내 파일을 디버그 파일로 빌드합니다. 그럼 잘 작동합니다.