使用VS2012和DirectX的警告(2010年6月)

Warnings using VS2012 and DirectX (june 2010)

本文关键字:2010年 6月 警告 VS2012 DirectX 使用      更新时间:2023-10-16

我正试图继续在VS2012中工作我的VS2010项目。我使用的是Directx 11(2010年6月)版本,每当我调试代码时,都会弹出一堆警告。

:

6>C:Program FilesMicrosoft DirectX SDK (June 2010)IncludeD2DErr.h(59):
warning C4005: 'D2DERR_WRONG_STATE' : macro redefinition
6>C:Program FilesWindows Kits8.0Includesharedwinerror.h(49859):
see previous definition of 'D2DERR_WRONG_STATE'
6>C:Program FilesMicrosoft DirectX SDK (June 2010)IncludeD2DErr.h(64):
warning C4005: 'D2DERR_NOT_INITIALIZED' : macro redefinition
6>C:Program FilesWindows Kits8.0Includesharedwinerror.h(49868):
see previous definition of 'D2DERR_NOT_INITIALIZED'

是否有一种方法可以使警告消失而不禁用它们?或者我应该将我的代码转换为windows sdk 8.0,其中有directx,然后从项目中完全删除旧的DX(2012年6月)。

这很复杂。MSDN有一个很长的页面,有完整的故事。

简而言之:部分DXSDK现在包含在Win8 SDK中。如果你想在VS2012中使用这些,你最好不要使用DXSDK。不幸的是,DX的某些部分不再被微软支持,因此没有包含在新的Win8 SDK中。突出的例子是D3DX实用程序库。如果你想使用这些,你将不得不拉入旧的DXSDK。

在这种情况下,您必须确保在来自两个sdk的不同版本中不包含相同的头文件,这可能是相当痛苦的。对于这种情况,一个简单的解决方法是仅将所需的头文件从DXSDK移动到单独的include目录,以避免意外地拉入错误的头文件。