2017-02-23 13 views
0

これを見て、これに対する答えを見つけられませんでした。これは違反行です。d3d-> GetImmediateContext IASetVertexBuffers(0,1、& vertexBuffer、& stride、0);IASetVertexBuffersを呼び出すと、以降のすべてのデバイスコンテキストの呼び出しによってアクセス違反が発生します(DX 11)

渡されたパラメータはNULL(0x00000000)(デバイスコンテキストもnullではありません)ですが、デバイスコンテキストのすべての関数呼び出しでアクセス違反エラーが発生します。私が得る例外メッセージは、2D Platformer.exeで0x00007FFDFD6CC796(d3d11.dll)にスローされた例外です。0xC0000005:アクセス違反が0x0000000000000000の位置を読み取っています。 "私が頂点バッファを設定しないと(明らかに何も描画されていない)、クラッシュは発生せず、私は今までに必要なものを呼び出すことができます。

他にも同様の問題が発生した場合や、この問題を引き起こす可能性のある人は誰ですか?

(あなたが任意の明確化が必要な場合は、単に尋ねる)

答えて

0

私が間違っていた正確に何考え出した、私がプログラム以来、アクセス違反エラーをスローNULLポインタとしてカウントされたオフセットのために0を渡したようです明らかにアドレス0x00000000にアクセスできませんでした。また、私はそれがラインで壊れたと思ったが、適切なラインではなく、その後のラインで壊れます。したがって、この問題を解決するために私がしなければならなかったすべては、このような変数に渡した:&オフセットパラメータのオフセットと、それは私が、これは将来的に他の誰かを助けることを願ってい

unsigned int offset = 0; 
d3d->GetImmediateContext()->IASetVertexBuffers(0, 1, &vertexBuffer, &stride,&offset); 

を働きました。

+0

'' IASetVertexBuffers''は、 '' ID3D11Buffer''へのポインタの配列をとります。ポインタへのポインタではないことに注意してください。これは時々使用法を少し混乱させます。 –

+0

ありがとう、ええ、以前私はそれに問題があった – JustinWeq

関連する問題