使用VS2012和DirectX的警告(2010年6月)
Warnings using VS2012 and DirectX (june 2010)
我正试图继续在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目录,以避免意外地拉入错误的头文件。相关文章:
- 代码厨师 2019 年 12 月午餐时间愚蠢的机器
- 更新到 2020 年 5 月版本后,无法在 Visual Studio 2019 中创建.exe文件
- 如何将字符串(2019年10月3日星期四18:45:10)转换为cpp中的time_t格式?
- 从1970年1月1日起,C 设置了MS的Windows时间
- 根据用户输入生成年、月、周和日
- 在可变参数模板类中使用可变参数进行显式专用化 [MSVS '12:12 年 11 月 CTP:错误 C3522]
- c++time_t返回到1970年1月1日之前
- 如果使用 Visual C++ 编译器 2013 年 11 月 CTP,是否还需要使用它编译所有依赖项
- 为什么Folloing代码在2010年Visual Studio(X64应用程序)中抛出非法指令例外
- C 检索自1970年1月1日以来的MS数量:无法开源文件SYS/TIME.H
- 视觉C 2010年致命错误C1083;没有权限
- 如何使用Visual Studio 2013 CTP 2013年11月11日建立Boost 1.55
- 即使在 Visual C++ 编译器中,在模板中传递 "const char" 参数也有些麻烦 2013 年 11 月 CTP
- 这是Zeller程序的代码.除了1111年2月31日、1111年6月31日这一通常是错误的日期外,一切都很顺利
- MS Visual Studios链接错误.2010年和2013年
- 如何在C++中输出日期如下2013年12月8日
- 从1601年1月1日起,将100纳秒间隔的uint64时间转换为日期时间字符串
- 日期时间验证截止到2012年7月25日15:08:23
- 如何从1970年1月1日(C++)开始获取当前系统时间(以毫秒为单位)
- 使用VS2012和DirectX的警告(2010年6月)