DirextX 11游戏开发(1)

本文介绍了在使用DirextX 11进行游戏开发时,遇到的链接库问题,特别是关于DirectX数学库的变更。在运行官方实例时,需要链接Windows SDK的相关库来解决无法解析的外部符号错误。现在,DirectX的数学库已经更新,开发者需要将旧的数学库头文件替换为新的,并在变量类型前使用适当的命名空间。
摘要由CSDN通过智能技术生成

链接库

在运行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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值