0

私は何日もコードを調べ、コードの一部を変更して機能するかどうかを確認し、コードを使用するさまざまな方法を試しましたが、まだ厄介な LNK2019 エラーが発生しています。

これは元のエラー メッセージです。

エラー 1 エラー LNK2019: 未解決の外部シンボル "public: struct IDirect3DSurface9 * thiscall CRenderer::LoadSurface(wchar_t const *,unsigned long,struct IDirect3DDevice9 *)" (?LoadSurface@CRenderer@@QAEPAUIDirect3DSurface9@@PB_WKPAUIDirect3DDevice9@@@Z) で参照function "public: void __thiscall CGame::InitGame(struct HWND *,int,int,bool)" (?InitGame@CGame@@QAEXPAUHWND__@@HH_N@Z) J:\Workspace\Fruit Avengers\Game.obj

これは、問題があると思われるコードです。私はこのコードを以前のプロジェクトで使用しました。今回はなぜうまくいかなかったのかわかりません。

Renderer.h

class CRenderer
{
public:
    IDirect3DTexture9* LoadTexture( LPCSTR FileName, D3DCOLOR Alpha, IDirect3DDevice9* Device );
    IDirect3DSurface9* LoadSurface( LPCWSTR FileName, D3DCOLOR Alpha, IDirect3DDevice9* Device );
};

Renderer.cpp

IDirect3DSurface9* CRenderer::LoadSurface( LPCWSTR FileName, D3DCOLOR Alpha, IDirect3DDevice9* Device )
{
    IDirect3DSurface9* Result = NULL;
    D3DXIMAGE_INFO Info;
    D3DXGetImageInfoFromFileW( FileName, &Info );
    Device->CreateOffscreenPlainSurface( Info.Width, Info.Height, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &Result, NULL );
    D3DXLoadSurfaceFromFileW( Result, NULL, NULL, FileName, NULL, D3DX_DEFAULT, Alpha, NULL );
    return Result;
}

ゲーム.cpp

void CGame::InitGame( HWND hWnd, int Width, int Height, bool Windowed )
{
    //Initialize Includes
    Graphics.InitDirect3D( hWnd, Width, Height, Windowed );

    //Load Game Variables...

    //Load Game Media...
    MenuBackground = WWIRenderer.LoadSurface( L"Resource/MenuBackground.jpg", 0, Graphics.Direct3DDevice );
   //^
}

編集:誰かが尋ねる前に、私はいくつかの検索を行いましたが、私が見つけた答えはそれほど役に立ちません.

4

2 に答える 2

0

私の記憶が正しければ、これは DirectX SDK がインストールされていない場合に発生するエラーです。したがって、そうするか、再インストールまたは更新する必要があります。

于 2013-09-09T09:23:23.317 に答える
0

MSVC++ でコンパイルする場合、すべてのソース ファイルとヘッダー ファイルをソリューション エクスプローラーに追加する必要があります。そうしないと、LNK2019 エラーが発生します。ウチアさんありがとう。

于 2013-09-10T09:12:09.277 に答える