2012-04-29 78 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功能的返回代碼。

顯示創建索引緩衝區的整個函數的代碼也會有幫助。

相關問題