2012-04-29 58 views
0

我得到CreateIndexBuffer()崩溃,某种指针错误。可能是什么原因造成的?

Unhandled exception at 0x004687b4 in D3DTest.exe: 0xC0000005: Access violation reading location 0x00000000.  

的错误是:

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

现在我检查m_d3dDevice,这一切都OK,一切工作正常,如果我没有创建缓冲区。 m_ib还属性格式在功能使用之前创建的:

LPDIRECT3DVERTEXBUFFER9 m_vb; 
    m_vb = NULL; 

我不认为别的可能会造成混淆problem.I'm做。

+0

你只显示m_vb设置,但我想m_ib是类似的。需要真正看到更多的代码。 – CarlJohnson

+0

到目前为止,代码看起来不错。你能否给更多的扩展代码示例?顺便说一句,'D3DUSAGE_WRITEONLY'没有意义,当你明确指定内存类('D3DPOOL_MANAGED')。尝试指定'D3DPOOL_DEFAULT'并检查它是否有帮助。 – real4x

回答

0

尝试启用DirectX控制面板中的调试运行时,如果您有任何问题,将显示警告和错误,并始终检查DX功能的返回代码。

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

相关问题