Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 LPD3DXBUFFER materialBuffer; DWORD numMaterials; LPD3DXMESH mesh; LPD3DXBUFFER r; // Load the mesh from the specified file HRESULT hr=D3DXLoadMeshFromX("teapot.x", D3DXMESH_SYSTEMMEM, pd3dDevice, &r, &materialBuffer,NULL, &numMaterials, &mesh ); if(FAILED(hr)) int y=9; D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)materialBuffer->GetBufferPointer();
Voilà, à chaque fois que je l'utilise, la commande me retourne un FAILED. Evidemment, pd3dDevice est initialisé, et teapot.x est un fichier qui figure bien dans mes ressources, et télévhargé sur le net pour etre sur d'utiliser un bon format. Et pourtant, j'ai essayé plusieurs codes différents, des fois même des codes dispos sur le net, juste à compiler. D'aileurs, pas de pb à la compilation, mais une fois que je lance, ça plante à cette ligne. Si je veux continuer, il me met :
Unhandled exception in .exe : 0xC0000005: Acces Violation
En plus, le HRESULT que je trouve est inconnu au bataillon ! Ni un D3DERR_INVALIDCALL ni un E_OUTOFMEMORY comme il ets censé retourner en cas d'erreur.
Est-ce que quelqu'un s'y connaitrait en DirectX, et me dirait si j'oublie pas quelque chose, ou si tout simplement il est possible qu'il y est un bug dans cette fonction ?
[Merci de penser a la balise de code ,Farscape]
Partager