找找MeshParser类的析构函数中是否直接或间接调用了
delete m_RootFrame->Name;
delete m_RootFrame;

解决方案 »

  1.   

    搞出来了.
    //释放溢出部分
    void D3DXFRAME_EX::DeleteX()
    {
        // Reset sibling frames
        D3DXFRAME_EX *pFramePtr;
        if((pFramePtr = (D3DXFRAME_EX*)pFrameSibling))
    {
    pFramePtr->DeleteX();
    }

        // Reset child frames
        if((pFramePtr = (D3DXFRAME_EX*)pFrameFirstChild))
    {
    pFramePtr->DeleteX();
    }

    if(pFrameSibling)
    {
    if(pFrameSibling->Name)
    {
    delete []pFrameSibling->Name;
    pFrameSibling->Name=NULL;
    }
    delete pFrameSibling;    
    pFrameSibling = NULL;
    }
    if(pFrameFirstChild)
    {
    if(pFrameFirstChild->Name)
    {
    delete []pFrameFirstChild->Name;
    pFrameFirstChild->Name=NULL;
    }
    delete pFrameFirstChild;
    pFrameFirstChild = NULL;
    }
    }
    void ENskinAtData::ENskinAtDataFree()
    {
    if(LHxxMatrixOb)
    {
    delete LHxxMatrixOb;
    LHxxMatrixOb=NULL; delete LHxx3DATDataOb;            //3d动画对象
    LHxx3DATDataOb=NULL;            //3d动画对象 g_Anim.Free();
    // Free mesh and frame data delete []g_Frame->Name;
    delete []g_Mesh->Name; //自己加的释放
    g_Frame->DeleteX(); delete g_Mesh;
    delete g_Frame;
    }
    }