【问题标题】:unresolved external error (d3d)未解决的外部错误 (d3d)
【发布时间】:2015-12-07 12:42:02
【问题描述】:

每当我尝试执行此代码时

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

【问题讨论】:

    标签: direct3d unresolved-external d3dx


    【解决方案1】:

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

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

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

    • 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 路径 - 有关详细信息,请参阅 Where is the 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

    【讨论】:

    • 当然,更好的解决方案是不使用旧版 Direct3D 9、已弃用的 D3DX9 或旧版 DirectX SDK。而是将 Direct3D 11 与内置于 VS 2012/2013/2015 的 Windows SDK 以及 DirectX Tool Kit 库和 SpriteFont 类一起使用。
    • d3dx9.lib 是一个真正的库。 d3d9x9.lib 不是。
    猜你喜欢
    • 2012-03-16
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2014-05-07
    • 2011-09-03
    • 2010-11-20
    相关资源
    最近更新 更多