首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
传统D3D11程序面向VS2015编译环境的配置修正细节
时间:
2016-01-04 01:26:54
阅读:
1549
评论:
0
收藏:
0
[点我收藏+]
标签:
A. 配置细节
使用
#include <
unordered_map
>
替代
<hash_map>
这个是c++标准建议的,没啥好说的
使用
#include <directxmath.h>
替代
<xnamath.h>
注意:如不想修改原xnamath代码,则需在包含directxmath.h之前定义_XM_NO_INTRINSICS_宏标志,以与原xnamath代码兼容
然而,_XM_NO_INTRINSICS_标志将指示directxmath不使用SSE/SSE2等增强型指令集,因此其数学实现极慢。如果想速度快,还是得去掉该标志,并相应地重写原xnamath代码为妥
去除
d3dx11
,不再使用任何
legacy DX SDK
中的头文件或
lib
,坚持使用
win SDK 8.0
这个是保障vs2015能够顺利编译链接、并且避免后继编译链接配置混乱的关键
去除项目设置中legacy DX SDK相关的include、lib路径定义
去除链接设置中legacy DX SDK相关的lib依赖,包括d3dx11.lib、dxerr.lib等;这些lib不要写在项目工程的linker inputs里面,用#pragma comment写在头文件里面
针对
d3dx11
,使用
DirectXTex
库来进行替代;
DirectXTex lib
需用
vs2015
重新编译
注意:
DirectXTex
库的API较d3dx11的API形式上变化极大,如纹理加载API等。所有d3dx11相关的代码均可能需要重写,这块是最大的工作量
针对
dxerr
,可找到其源码
.cpp/h
,将其直接包含进项目,一起编译
注意:不能再使用legacy dx sdk中的dxerr.lib,因其使用了过时的库,因此在vs2015中无法link
在直接包含编译dxerr.h/cpp的同时,可能会碰到若干预定义标志重定义,得自己手工调整一下
在#include <dxerr.h>之前,需添加#include <Mmreg.h>定义
针对
effect11
,其
lib
需用
vs2015
重新编译
为提升STL调试时效率,可将_HAS_ITERATOR_DEBUGGING、_SECURE_SCL编制标志设置为0,关闭迭代子调试功能;注意:在编译directxTex、effect11等外部lib时,也必须设置上述标志,否则无法link
针对
d3d_compiler
,可直接使用
win sdk 8
自带的
lib
注意:d3d_compiler.lib会运行时调用d3dcompiler_XX.dll(xx是版本号),需要将这个dll拷贝到系统目录或程序当前目录下,以便运行时能够加载
注意:这个dll在win sdk 8的bin目录里面有,但有x32、x64两个版本,在拷贝dll时千万别拷错了版本,否则运行时崩溃(0xc000007b Error)
B. 参考文献
http://blogs.msdn.com/b/chuckw/
http://blogs.msdn.com/b/chuckw/archive/2012/04/24/where-s-dxerr-lib.aspx
http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx
http://blogs.msdn.com/b/chuckw/archive/2015/08/05/where-is-the-directx-sdk-2015-edition.aspx
https://github.com/Microsoft/DirectXTex/wiki/DirectXTex
https://github.com/Microsoft/DirectXTK/wiki
https://github.com/Microsoft/DirectXMesh/wiki
https://github.com/Microsoft/FX11/wiki
https://msoos.wordpress.com/2010/09/11/0xc000007b-error-solution/
传统D3D11程序面向VS2015编译环境的配置修正细节
标签:
原文地址:http://www.cnblogs.com/neoragex2002/p/5097566.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!