问题描述
我现在尝试使用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 Docs和this blog post。
一个更好的选择是完全不使用旧版DirectX SDK,这意味着使用DirectX 11而不是较旧的DX9 / DX10 API。参见Living without D3DX。
还有各种StackOverflow线程都是相同的基本问题: