C++ 未解析的外部符号'_D3DX10CreateFontIndirectA@12';在DirectX 11中

C++ 未解析的外部符号'_D3DX10CreateFontIndirectA@12';在DirectX 11中,c++,directx-11,C++,Directx 11,我目前正试图编写一些代码来使用DirectX 11显示一些文本,但在构建它时,我收到了以下错误: 1>Source.obj : error LNK2019: unresolved external symbol _D3DX10CreateFontIndirectA@12 referenced in function "bool __cdecl InitScene(void)" (?InitScene@@YA_NXZ) 作为参考,这里是我得到的代码,包括我认为可能导致问题的那行代码: bo

我目前正试图编写一些代码来使用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;
}

有人知道为什么会发生这种情况吗?如果有,如何修复?

此函数D3DX10CreateFontIndirect需要链接D3DX10.lib。顺便说一下,如果您想在DX11中渲染字体,建议您使用DirectWrite,这是在DirectX中渲染字体的新技术


您需要链接到D3DX10.lib

假设您使用的是Visual Studio,右键单击项目并打开属性。在左侧部分,展开并选择配置属性->链接器->输入。然后在右边的“Addition Dependencies”中添加库名为D3DX10.lib,并使用分号将其与任何其他列出的库分隔开

为了确保这些“附加依赖项”在构建过程中得到实际使用,还需要验证另外两件事。 在配置属性->链接->常规下 1) 确保为“链接库依赖项”选择“是”。 2) 确保为“使用库依赖项输入”选择“是”


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

您突出显示的行不是错误的原因。您认为您是否正在链接DirectX库?你知道吗?是的,我正在链接一个DirectX库——确切地说是d3d10.lib。