0

現在、DirectX 11 を使用してテキストを表示するコードを作成しようとしていますが、ビルドする際に次のエラーが発生しました。

1>Source.obj : error LNK2019: unresolved external symbol _D3DX10CreateFontIndirectA@12 referenced in function "bool __cdecl InitScene(void)" (?InitScene@@YA_NXZ)

参考までに、問題を引き起こしている可能性があると思われる行を含む、私が入手したコードを次に示します。

bool InitScene()
{
D3DX10_FONT_DESC fd;
fd.Height = 175;
fd.Width = 0;
fd.Weight = 0;
fd.MipLevels = 1;
fd.Italic = false;
fd.CharSet = OUT_DEFAULT_PRECIS;
fd.Quality = DEFAULT_QUALITY;
fd.PitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
strcpy_s(fd.FaceName, "Impact"); //Need to find out how to fix this.

D3DX10CreateFontIndirect(d3dDevice, &fd, &Font);

return true;
}

なぜこれが起こっているのか誰か知っていますか?もしそうなら、どうすれば修正できますか?

4

2 に答える 2

2

D3DX10.lib とリンクする必要があります。

Visual Studio を使用していると仮定して、プロジェクトを右クリックし、[プロパティ] を開きます。左側のセクションで、[構成プロパティ] -> [リンカー] -> [入力] を展開して選択します。次に、右側のセクションの [Addition Dependencies] にライブラリ名を D3DX10.lib として追加し、セミコロンを使用してリストされている他のライブラリと区切ります。

これらの「追加の依存関係」がビルド プロセス中に実際に使用されていることを確認するには、さらに 2 つのことを確認する必要があります。[構成プロパティ] -> [リンク済み] -> [一般] の下で、1) [ライブラリの依存関係をリンクする] で [はい] を選択してください。2) 「Use Library Dependency Inputs」で「はい」を選択してください。

また、将来、「未解決の外部シンボル」というエラーが発生した場合は、未解決の関数/シンボルが属するライブラリを見つけ、上記のようにそのライブラリを「追加の依存関係」に追加します。

于 2012-10-19T14:41:35.223 に答える
0

この関数 D3DX10CreateFontIndirect は、D3DX10.lib をリンクする必要があります。ところで、DX11 でフォントをレンダリングする場合は、DirectX でフォントをレンダリングするための新しいテクノロジである DirectWrite を使用することをお勧めします。

D3DX10CreateFontIndirect

ダイレクトライト

于 2012-10-19T14:32:33.493 に答える