Direct3d/C++ で開発されたレンダリング エンジンを備えたアプリケーションがあります。最近、ID3DXConstantTable SetFloat/SetVector に関連するクラッシュ (アクセス違反) に遭遇し、PDB を含むリリース バイナリにデバッガーをアタッチすると、D3dx9_42.dll 内に表示されます。使用される D3dPOOL Rendertarget テクスチャの数を減らすと、このクラッシュが消える方法の 1 つですが、3GB NVIDIA カードを使用しているため、GPU メモリ負荷を推定すると、使用可能な合計の半分にも近くなりません。
メモリの上書きによるヒープの破損が疑われるため、コード チェックを行った後、Application Verifier とデバッガーを使用して、実行の後の段階でクラッシュする可能性のあるメモリの上書きを根絶しました.いくつかの問題に遭遇しました.私たちが解決したもの。しかし、そのクラッシュは最初のフレーム レンダー ID3DXConstantTable SetFloat/SetVector に残っています。詳細 : これは、LARGEADDRESSAWARE フラグで実行される 32 ビット アプリケーションです。ポインタはありますか?