传统D3D11程序面向VS2015编译环境的配置修正细节

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.   参考文献

  1. http://blogs.msdn.com/b/chuckw/
  2. http://blogs.msdn.com/b/chuckw/archive/2012/04/24/where-s-dxerr-lib.aspx
  3. http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx
  4. http://blogs.msdn.com/b/chuckw/archive/2015/08/05/where-is-the-directx-sdk-2015-edition.aspx
  5. https://github.com/Microsoft/DirectXTex/wiki/DirectXTex
  6. https://github.com/Microsoft/DirectXTK/wiki
  7. https://github.com/Microsoft/DirectXMesh/wiki
  8. https://github.com/Microsoft/FX11/wiki
  9. https://msoos.wordpress.com/2010/09/11/0xc000007b-error-solution/
时间: 2024-10-14 17:38:14

传统D3D11程序面向VS2015编译环境的配置修正细节的相关文章

初学java编译环境的配置(windows10系统)

要学习java第一步就必须学会java环境的配置.下面就是java环境的配置方法(不用纠结于不同的系统的配置方法,每个系统的配置方法几乎无差别). 首先下载一个java然后进行安装,安装步骤和普通的软件安装相同.(提供一个百度云下载java和eclipse的链接http://pan.baidu.com/s/1hqipksW有需要的可以下载) 1.首先找到控制面板->系统安全->系统,找到如图所示的黑色下划线选项. 2.找到系统设置里面的高级选项.点击图中的环境变量. 3.新建系统变量JAVA_

anysis中fluent 与 VS2015 编译 环境配置

环境:win10 64位+VS2015 32位 +ansys 16.0 配置:调到环境变量, 用户变量 include  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include  C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include  C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt

CodeBlocks VS2015编译环境设置

1. 菜单 Settings --> Compiler... 2. 设置vs 的安装路径 设置vs 的头文件搜索路径 设置vs 的库文件搜索路径

qt+opencv编译环境的配置

第一步:安装与配置Qt 从https://account.qt.io/downloads下载Qt,并注册账户.开始安装.首先下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认方式实现qt的安装,所下载和安装的文件不仅含有Qt libraries,还包括Qt Creator,注意在安装过程中需要选择mingw 32bit的qt,当然,这也需要根据你系统的版本进行替换. 第二步:安装与配置OpenCV 1.从http:

windows下cocos2dx3.0开发环境及Android编译环境搭建

cocos2dx更新到了3.x版本,自己一直没有换,现在开发组要求统一换版本,我就把搭建环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具 1)cocos2d-x-3.0rc0.zip   http://cn.cocos2d-x.org/download/  截止写博文时,最新版本为V3.2. 2)VS2012 http://www.baidu.com/s?wd=VS2012 3)Python  https://www.python.org/download/releas

Java开发环境的配置

为了能够在计算机上开发Java程序和运行Java程序,就需要在Windows操作系统上配置Java开发环境. 首先,安装JDK: 1.在Oracle官网上下载JavaSE: 2.在Download下载页面中,选择Windows平台下的JDK6: 3.下载完成后进行安装,默认安装在c:\Program Files\Java下: 4.安装完成后,在DOS命令行状态下测试JDK6是否安装成功: 5.运行cmd,输入java -version命令,可以查看版本信息,若显示出版本信息,则安装成功. 然后进

win7(x64)+VS2012+cocos2d-x环境的配置以及试运行

原地址:http://blog.csdn.net/gf771115/article/details/20740993 转自:http://blog.sina.com.cn/s/blog_62df69790101eob1.html Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d

在安卓手机上学习C语言 - 安卓手机C/C++编译环境的搭建 : 程序世界的创建

   在安卓手机上学习C语言           安卓手机C/C++编译环境的搭建 : 程序世界的创建 在电脑上运行的QQ,手机上的QQ都是程序, 这些通电就能用的神奇玩意, 如果我说它们都是程序员用一个一个英文字母,数字,奇奇怪怪的符号创造出来的,我想那些没有任何概念的朋友可能会感到惊讶. 是的, 在没有揭开程序世界的神秘面纱之前, 一切都是那么神奇. 实际上, 程序确实是用一个一个英文字母(或者说拼音字母...)来写出来的, 就和写小说一样写出来的. 但是并不是写完之后把写出来的内容保存到一

java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

**-----Java基础大纲-----**   **-----本章节-----** 1.Java语言的历史.特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7.数组 ============================================== 一:历史及开发准备 1.Java发展历程及来源 (1)发展历程 1996年1月,Sun公司发布了Java的第一个开发工具包(JD