DirectX 11 中未解析的外部符号'_D3DX10CreateFontIndirectA@12'

Unresolved external symbol '_D3DX10CreateFontIndirectA@12' in DirectX 11

本文关键字:符号 D3DX10CreateFontIndirectA@12 外部 DirectX      更新时间:2023-10-16

我当前正在尝试编写一些代码以使用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;
}

有人知道为什么会发生这种情况吗?

您需要与d3dx10.lib。

链接

假设您正在使用Visual Studio,请右键单击您的项目并打开属性。在左侧,扩展并选择配置属性 -> linker->输入。然后在正确的部分中,在"添加依赖关系"中,将库名称添加为d3dx10.lib使用Semicolon将其与任何其他列出的库分开。

确保在构建过程中实际使用了这些"其他依赖",应验证另外两件事。在配置属性下 ->链接 ->一般1)确保为"链接库依赖关系"选择"是"。2)确保为"使用库依赖项输入"选择"是"。

将来,对于任何显示"未解决的外部符号"的错误,请找出上述未解决函数/符号属于哪个库,并在上面提到的"其他依赖关系"中添加该库。

此功能D3DX10CreateFontirect需要链接d3dx10.lib。顺便说一句,如果您想在DX11中渲染字体,建议您使用DirectWrite,这是在DirectX中渲染字体的新技术。

d3dx10 createfontirect

directwrite