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,使用分号将其与任何其他列出的库分隔。

为了确保在构建过程中实际使用这些“附加依赖项”,还需要验证两件事。在 Configuration Properties->Linked->General 1) 确保为“Link Library Dependencies”选择“Yes”。2)确保为“使用库依赖输入”选择“是”。

此外,将来,对于任何显示“未解析的外部符号”的此类错误,请找出未解析的函数/符号属于哪个库,并将该库添加到“附加依赖项”中,如上所述。

于 2012-10-19T14:41:35.223 回答
0

这个函数 D3DX10CreateFontIndirect 需要链接 D3DX10.lib。顺便说一句,如果要在DX11中渲染字体,推荐使用DirectWrite,这是DirectX中渲染字体的新技术。

D3DX10CreateFontIndirect

直写

于 2012-10-19T14:32:33.493 回答