目录
链接库
在运行DX11的官方实例时,经常会出现无法解析的外部符号__imp__CoCreat…之类的错误,这是因为DX的一些函数调用了Windows SDK中的系统函数,因此需要链接相关的库。
目前每个DX实例可以正确运行需要链接的库如下:
X3daudio.lib
d3dx10d.lib
d3dx9d.lib
dxerr.lib
dxguid.lib
winmm.lib
comctl32.lib
kernel32.lib
User32.lib
wsock32.lib
Advapi32.lib
shell32.lib
gdi32.lib
legacy_stdio_definitions.lib
ole32.lib
DirectX 数学库
在运行龙书(DX11)时,第一张向量包含的头文件#include <xnamath.h>
会报错,官方对其原因进行了解释:xnamath.h
原本是位于DirectX SDK的一个数学库,但是现在Windows SDK包含的数学库已经抛弃掉原来的xnamath.h
,并演变成了现在的DirectXMath.h
。其实本质上并没有多大区别,只是将原来的xna数学函数移植到了这里,并多了一层名称空间DirectX
。
因此需要将xnamath.h
替换为DirectXMath.h
,并且在变量类型之前嵌套命名空间。如:
#include <windows.h> // for FLOAT definition
//#include <xnamath.h>
#include <DirectXMath.h> // 替换,并在下面向量等前面添加DirectX::命名空间
#include <iostream>
using namespace std;
// Overload the "<<" operators so that we can use cout to
// output XMVECTOR objects.
ostream& operator<<(ostream& os, DirectX::FXMVECTOR v)
{
DirectX::XMFLOAT4 dest;
DirectX