0

每当我尝试执行此代码时

D3DXCreateFont(d3dDevice, 20, 0, FW_BOLD, 0, FALSE, DEFAULT_CHARSET,
    OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
    choiceFont, &Font);

我收到这个错误

Error   1   error LNK2019: unresolved external symbol _D3DXCreateFontA@48 referenced in function "public: void __thiscall BlackBox::CreateFontA(struct IDirect3DDevice9 *,char const *)" (?CreateFontA@BlackBox@@QAEXPAUIDirect3DDevice9@@PBD@Z)    D:\Projects\Black_Box\Black_Box\BlackBox.obj    Black_Box
4

1 回答 1

0

您需要d3dx9.lib在旧版 DirectX SDK 中链接以获取 D3DXCreateFont。这在MSDN上有说明。

如果您的输入中列出了此库,那么您的问题可能是链接库路径配置不正确。对于 VS 2010、2012、2013 或 2015,您必须手动将旧版 DirectX SDK 路径添加到您的项目(VC++ 目录):

对于使用 Windows 7.x SDK 的 VS 2010 或用于 VS 2012/2013/2015 的“Windows XP 兼容”平台工具集,您将首先列出 DirectX SDK 路径——有关详细信息,请参阅这篇文章

  • Win32 / x86(32 位)

    • $(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)
    • $(DXSDK_DIR)Include;$(IncludePath)
    • $(DXSDK_DIR)Include;$(IncludePath)
  • x64 原生

    • $(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)
    • $(DXSDK_DIR)Include;$(IncludePath)
    • $(DXSDK_DIR)Lib\x64;$(LibraryPath)

对于通过props使用 Windows 8.x SDK 的 VS 2012、2013、2015 或 VS 2010 ,您列出了第二个 DirectX SDK 路径 - 请参阅DirectX SDK 在哪里?详情。

  • Win32 / x86(32 位)

    • $(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86
    • $(IncludePath);$(DXSDK_DIR)Include
    • $(LibraryPath);$(DXSDK_DIR)Lib\x86
  • x64 原生

    • $(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86
    • $(IncludePath);$(DXSDK_DIR)Include
    • $(LibraryPath);$(DXSDK_DIR)Lib\x64
于 2015-09-11T07:44:54.223 回答