将DirectX添加到包含和库目录会引发300多个错误

问题描述

我现在尝试使用Direct 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中所有这些错误的出现,这些dll位于我从未见过的文件夹中。感谢您的帮助

解决方法

基本问题是,您必须颠倒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平台工具集,该工具集改用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线程都是相同的基本问题: