Pointers CreateIndexBuffer()崩溃,某种指针错误。这是什么原因造成的?

Pointers CreateIndexBuffer()崩溃,某种指针错误。这是什么原因造成的?,pointers,null,directx,buffer,direct3d,Pointers,Null,Directx,Buffer,Direct3d,我明白了 错误位于: Unhandled exception at 0x004687b4 in D3DTest.exe: 0xC0000005: Access violation reading location 0x00000000. 现在我检查了m_d3dDevice,一切正常,如果不创建缓冲区,一切正常。 m_ib也是在用于该功能之前创建的: m_d3dDevice->CreateIndexBuffer(sizeof(short)*CHUNK_PRIMITIVES*3,D3

我明白了

错误位于:

Unhandled exception at 0x004687b4 in D3DTest.exe: 0xC0000005: Access violation reading location 0x00000000.    
现在我检查了m_d3dDevice,一切正常,如果不创建缓冲区,一切正常。 m_ib也是在用于该功能之前创建的:

m_d3dDevice->CreateIndexBuffer(sizeof(short)*CHUNK_PRIMITIVES*3,D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_MANAGED, &m_ib, NULL);    

我不认为任何其他原因会导致此问题。我感到困惑。

尝试从DirectX控制面板启用调试运行时,该面板将显示警告和错误(如果有),并始终检查DX函数的返回代码


显示创建索引缓冲区的整个函数的代码也会有所帮助。

您只显示m_vb设置,但我认为m_ib类似。需要看更多的代码。到目前为止,代码看起来不错。你能提供更多的扩展代码示例吗?顺便说一句,当您显式指定内存类D3DPOOL\u MANAGED时,D3DUSAGE\u WRITEONLY没有意义。尝试指定D3DPOOL_默认值,并检查是否有帮助。
LPDIRECT3DVERTEXBUFFER9 m_vb;
    m_vb = NULL;