Skocz do zawartości

[DirectX] Problem z funkcją D3DXCreateTextureFromFile


Solmis

Rekomendowane odpowiedzi

Witam. Napisałem sobie funkcję ładującą pliki *.x. Wszystko się kompiluje, tylko przy debugowaniu wyskakuje błąd. :confused:

 

Treść błędu:

Unhandled exception at 0x77d4ed87 in GE_3D.exe: 0xC0000005: Access violation reading location 0x000001b0.

 

Call stack:

> GE_3D.exe!InitMeshes() Line 22 + 0x14 bytes C++

 

Funkcja (kod):

HRESULT InitMeshes()
{
        //Tworzenie bufora dla siatki
        LPD3DXBUFFER g_MeshBuffer;

    //Ładowanie siatki modelu
        if(FAILED(D3DXLoadMeshFromX("gfx/beczka.x", D3DXMESH_SYSTEMMEM, g_myDevice, &g_MeshBuffer, NULL, NULL, &nMesh, &meshMesh)))
                return E_FAIL;


        //Tworzenie materiałów i tekstur dla modelu
        //{
        D3DXMATERIAL* dxMaterials = (D3DXMATERIAL*)g_MeshBuffer->GetBufferPointer();
        mMesh = new D3DMATERIAL9[nMesh];
        tMesh = new LPDIRECT3DTEXTURE9[nMesh];

        for(DWORD i = 0; i < nMesh; i += 1)
        {
                mMesh[i] = dxMaterials[i].MatD3D;
                mMesh[i].Ambient = mMesh[i].Diffuse;

                if(FAILED(D3DXCreateTextureFromFile(g_myDevice, dxMaterials[i].pTextureFilename, &tMesh[i])))  //błąd
                        tMesh[i] = NULL;
        }
        //}
        
        //Zwalnianie bufora siatki
        g_MeshBuffer->Release();


        return S_OK;
}

 

Używam Visuala C++ 2008 EE.

Odnośnik do komentarza
Udostępnij na innych stronach

A spróbuj:

        D3DMATERIAL9 mMesh[nMesh];
        LPDIRECT3DTEXTURE9  tMesh[nMesh];

U mnie w silniku działa ładowanie w ten sposób o_O

 

if ( FAILED( D3DXCreateTextureFromFile( g_pd3dDevice, ( LPCSTR )path, &g_pTexture[ textures ]) ) )

g_pTexture mam inicjowane jako vector, spróbuj...

Odnośnik do komentarza
Udostępnij na innych stronach

ja od początku stawiałem na błędne kodowanie, sprawdź czy jeśli masz kodowanie ansii w projekcie to czy na pewno nie podajesz stringu unicode ( string=L"tekst"; ) bądź czy funkcja nie pobiera argumentu typu LPCWSTR (unicode). tylko to mi sie nasuwa na myśl widząc ten błąd

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...