Direct XのC++でLoad Mesh関数を作成する際に問題が発生しました。このエラーが発生するようです:「_.exeの0x00401e64で未処理の例外:0xC00000005: 0x83e05597 "というアクセス違反を読み込んでいます。私はそれがこのラインにクラッシュされて知っている:Direct X 9 with C++のXファイルからメッシュをロード
D3DXMATERIAL* tempMaterials = (D3DXMATERIAL*)bufMaterial->GetBufferPointer();
全体の機能が(私はこれまで、直接Xヘルプのdirectxtutorial.comに沿って、次のされている)、このようになります。
void LoadModel(Model* model, LPCTSTR File){
LPD3DXBUFFER bufMaterial;
D3DXLoadMeshFromX(File, D3DXMESH_SYSTEMMEM, d3ddev, NULL, &bufMaterial, NULL,
&model->numMaterials, &model->Mesh);
OutputDebugString("LOAD MESH \n");
D3DXMATERIAL* tempMaterials = (D3DXMATERIAL*)bufMaterial->GetBufferPointer();
OutputDebugString("GET BUFFER\n");
model->Material = new D3DMATERIAL9[model->numMaterials];
model->Texture = new LPDIRECT3DTEXTURE9[model->numMaterials];
OutputDebugString("LOAD MESH \n");
for(DWORD index = 0; index < model->numMaterials; index++)
{
model->Material[index] = tempMaterials[index].MatD3D;
model->Material[index].Ambient = model->Material[index].Diffuse;
// if there is a texture to load, load it
if(FAILED(D3DXCreateTextureFromFileA(d3ddev,
tempMaterials[index].pTextureFilename,
&model->Texture[index])))
model->Texture[index] = NULL; // if there is no texture, set the texture to NULL
}
return;}
私はこのようにそれを呼び出す:私は私の古い始まりのDirectXの本とすべてが、一時的な材料バッファから材料バッファのこの型キャストを使用する他のWebサイトのソースを発見した、
LoadModel(networkBase, TEXT("E:\\C++\\Skirmish\\X\\gridbox.x"));
しかし、クラッシュしているラインのようにしています。助けてください!
私はあなたのログイン情報を持っていることができます私は13歳の私を購入することはできません/ – Ramilol