游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1906|回复: 2

directx9.0 sdk 开发求助

[复制链接]

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2005-10-2 14:45:00 | 显示全部楼层 |阅读模式
我编了一个程序装入一个x文件,其中部分代码如下
class CD3DMesh
{
public:
    TCHAR               m_strName[512];
    LPD3DXMESH          m_pSysMemMesh,ppMesh;    // SysMem mesh, lives through resize
    LPD3DXMESH          m_pLocalMesh;     // Local mesh, rebuilt on resize
    DWORD               m_dwNumMaterials; // Materials for the mesh
    D3DMATERIAL9*       m_pMaterials;
    LPDIRECT3DTEXTURE9* m_pTextures;
    bool                m_bUseMaterials;
 LPD3DXBUFFER pD3DXMtrlBuffer;
    DWORD g_dwNumMaterials;
   LPD3DXMESH pMesh;
public:
    // Rendering
    HRESULT Render( LPDIRECT3DDEVICE9 pd3dDevice,
                    bool bDrawOpaqueSubsets = true,
                    bool bDrawAlphaSubsets = true );

          HRESULT Create( LPDIRECT3DDEVICE9 pd3dDevice, TCHAR* strFilename );
   
    CD3DMesh( TCHAR* strName = _T("CD3DFile_Mesh") );
    virtual ~CD3DMesh();
};
其中create函数如下
HRESULT CD3DMesh::Create( LPDIRECT3DDEVICE9 pd3dDevice, TCHAR* strFilename )
{
                   TCHAR        strPath[MAX_PATH];
                   LPD3DXBUFFER pAdjacencyBuffer = NULL;
                   LPD3DXBUFFER pMtrlBuffer = NULL;
xxxxxxxxx:    m_dwNumMaterials=0;
                   HRESULT      hr;

    // Find the path for the file, and convert it to ANSI (for the D3DX API)
                      DXUtil_FindMediaFileCb( strPath, sizeof(strPath), strFilename );

        // Load the mesh
    if( FAILED(hr= D3DXLoadMeshFromX( strPath, D3DXMESH_SYSTEMMEM, pd3dDevice,
                                        &pAdjacencyBuffer, &pMtrlBuffer, NULL,
                                                                                &m_dwNumMaterial,&ppMesh ) ) )
    {
        return hr;
    }

   
    return hr;
}

当我用下面的语句时
CD3DMesh * m_ptiger;
if( FAILED( m_ptiger->Create( m_pd3dDevice, _T("tiger.x")) ) )
        return D3DAPPERR_MEDIANOTFOUND;
总是出错,unhandled exception in aa.exexc0000005:ACCESS Violation
我设了断点,发现是在xxxxxxxxx行m_dwNumMaterials=0;处出错的(上面标记了),实在想不通,那位高手请指点一下,不胜感激


                      谢谢

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2005-10-2 23:00:00 | 显示全部楼层

Re:directx9.0 sdk 开发求助

CD3DMesh * m_ptiger;

//这中间应该有 m_ptiger = new CD3DMesg; 吧

if( FAILED( m_ptiger->Create( m_pd3dDevice, _T("tiger.x")) ) )
        return D3DAPPERR_MEDIANOTFOUND;

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2005-10-4 20:37:00 | 显示全部楼层

Re:directx9.0 sdk 开发求助

确实如此,太感谢您了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-28 01:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表