1

DirectXとC++プログラミングは初めてですが、宿題をする必要があります(実際の割り当てはすでに完了していますが、コンパイル後にコードを実行できません)。私は自分のプログラムに足を踏み入れ、問題が私のD3DXLoadSurfaceFromFile電話であることに気づきました。実際のコードは

//load m_Surface from file into newly created m_Surface
result = D3DXLoadSurfaceFromFile(
    m_Surface,
    NULL,
    NULL,
    m_BackgroundFile,
    NULL,   
    D3DX_DEFAULT,
    0,  
    NULL);      

'結果'は次のとおりです。

    HRESULT result = m_d3ddev->CreateOffscreenPlainSurface(
    SCREENW,            //An int set to 640
    SCREENH,            //An int set to 480
    D3DFMT_X8R8G8B8,    //m_Surface's format
    D3DPOOL_DEFAULT,    //Memory pool
    &m_Surface,         //Pointer to m_Surface
    NULL);              //Reserved

m_SurfaceLPDIRECT3DSURFACE9最初はに設定されていますNULL

m_BackgroundFile「filename.bmp」(24ビットビットマップ)に設定されています

そして(私は思う/願っています)他のすべては自明です。

それが助けになるなら、私がチェックする直前(これはプログラムを閉じる原因となるチェックです)

if (!SUCCEEDED(result))
    return false;

結果はS_OKに設定され、次に-200559767に設定されます

4

1 に答える 1

0

あなたのコードから、私は何も悪いことを見ませんでした、しかしあなたが間違ったファイルをパラメータm_BackgroundFileに渡したと思います、プログラムがファイルを見つけることができないか、ファイルが受け入れ可能な形式ではありませんでした。

于 2012-10-03T09:41:32.103 に答える