【问题标题】:Adding directx to include and library directories throws over 300 errors将 directx 添加到包含和库目录会引发 300 多个错误
【发布时间】:2020-09-27 19:17:11
【问题描述】:

我现在正在尝试使用直接 x 9 / 10,但只要我添加

C:\Program Files %28x86%29\Microsoft DirectX SDK %28November 2008%29\Include

到我的包含目录和

C:\Program Files %28x86%29\Microsoft DirectX SDK %28November 2008%29\Lib\x86 

到我的库目录

我收到 397 个错误,主要包括

identifier "__RPC__inout_xcount" is undefined

expected a ')'  solution    C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\OAIdl.h  5621    

我不明白是什么导致了我从未接触过的 dll 中的所有这些错误,这些错误位于我以前从未见过的文件夹中。任何帮助表示赞赏

【问题讨论】:

  • 有些包含不匹配。确保您不删除默认包含,而只是在默认后“添加”您的新包含。尝试在源代码中的任何其他内容之前添加 windows.h。检查一下:social.msdn.microsoft.com/Forums/en-US/… 否则将您的项目放到互联网上,以便我们检查。

标签: visual-studio dll directx directx-9 directx-10


【解决方案1】:

基本问题是您必须颠倒 include/lib 路径搜索顺序才能将旧版 DirectX SDK 与 Windows 10 SDK 结合使用。

对于 x86/Win32 配置:

$(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

或者,您需要使用v14?_xp Platform Toolset,它使用 Windows 7.1A SDK。

旧版 DirectX SDK 旨在与 VS 2010 附带的 Windows 7 SDK 或更早版本一起使用,现已弃用 DirectX SDK。

参见Microsoft Docsthis blog post

更好的选择是根本不使用旧版 DirectX SDK,这意味着使用 DirectX 11 而不是旧版 DX9/DX10 API。见Living without D3DX

还有各种 StackOverflow 线程都是相同的基本问题:

请务必阅读Where is the DirectX SDK (2021 Edition)?

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 2013-11-18
    • 2015-05-29
    • 2017-08-20
    • 1970-01-01
    • 2016-08-14
    • 2016-08-28
    • 2016-05-30
    • 2013-07-04
    相关资源
    最近更新 更多