[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
传统D3D11程序面向VS2015编译环境的配置修正细节
时间:
2016-01-04 01:26:34
阅读:
930
评论:
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年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!