链接 DirectX

问题描述 投票:0回答:1

我正在开发一个 DirectX9 项目,现在是时候开始做精灵了,为此,我需要包含 d3dx9.h,所以在尝试正确链接一段时间后,这本身就很令人困惑,因为它发现d3d9.h 很好,它与 d3dx9 位于同一位置,我认为我只需要将它添加到其他库中,过了一段时间它终于起作用了。然而,在运行该程序时,我收到一个错误,来自 d3dx9core.h:

C2061: syntax error: identifier 'TEXTMETRICA'

我在网上找不到任何答案,也无法弄清楚是什么导致了这个问题。代码行是d3dx9core.h的330,

STDMETHOD_(BOOL, GetTextMetricsA)(THIS_ TEXTMETRICA *pTextMetrics) PURE;
它有四个错误,都指向这一行。有什么想法吗?

c++ directx-9
1个回答
4
投票

如果您在 VS 2015 或更高版本中使用旧版 DirectX SDK,则需要确保 DXSDK include/lib 路径位于标准 Windows 8.1 SDK / Windows 10 SDK 路径之后。这是因为旧版 DirectX SDK 具有某些 Windows 标头的过时副本。 详细信息位于

Microsoft Docs

的底部。

DirectX 9 已经很老了,实际上只需要针对 Windows XP。您应该查看 DirectX 11,特别是
DirectX Tool Kit

SpriteBatch。请参阅

没有 D3DX 的生活

更新:

如果您仍然坚持使用 Direct3D 9,您现在可以从 NuGet 获取旧版 D3DX9 帮助程序库,您可以将其与现代 Windows SDK 中的 Direct3D 9 标头一起使用。建议在任何情况下都不要使用旧版 DirectX SDK,避免旧版 DirectX SDK 安装程序的已知问题,无需使用旧版 DirectX 最终用户运行时 Redist,并更新 DLL 以使用 SHA-256 而不是已弃用的SHA-1 协同设计。请参阅此博文

© www.soinside.com 2019 - 2024. All rights reserved.