|
|
编了一个单独调用模型的程序,用的是vc2003,调试,模型出来了,
但关闭的时候跑出一个框,其中有句子曰:Debug Assertion Failed!
点击其中的[重试]按钮,
调试框输出:
D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
Direct3D9: (INFO) :======================= Hal SWVP device selected
steering.exe 中的 0x00414606 处未处理的异常: 用户断点 。
调用堆栈框显示:
steering.exe!operator delete(void * pUserData=0x003c0ff0) 行52 + 0x51 C++
steering.exe!Cleanup() 行145 + 0x17 C++ <@@>
steering.exe!WinMain(HINSTANCE__ * hInst=0x00400000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000, HINSTANCE__ * __formal=0x00000000) 行375 C++
steering.exe!WinMainCRTStartup() 行251 + 0x30 C
kernel32.dll!7c816fd7()
看样子是Cleanup() 行出了错.
请看
VOID Cleanup()
{
if( g_pMeshMaterials != NULL )
delete[] g_pMeshMaterials; // <@@>
if( g_pMeshTextures )
{
for( DWORD i = 0; i < g_dwNumMaterials; i++ )
{
if( g_pMeshTextures )
g_pMeshTextures->Release();
}
delete[] g_pMeshTextures;
}
if( g_pMesh != NULL )
g_pMesh->Release();
if( g_pd3dDevice != NULL )
g_pd3dDevice->Release();
if( g_pD3D != NULL )
g_pD3D->Release();
}
这里怎么会出错呢?
双击<@@>行,箭头直指delete[] g_pMeshMaterials; // <@@>
[em3]呼唤牛人 |
|