我有简单的 DirectX 项目:
#include <d3dx10.h>
#include <d3dx10math.h>
#pragma comment(lib, "d3d10.lib")
#pragma comment(lib, "d3dx10.lib")
int main()
{
D3DXVECTOR3 u(1.0f, 2.0f, 3.0f);
D3DXVECTOR3 v(2.0f, 1.0f, 3.0f);
D3DXVECTOR3 a, b, c, d, e;
float l = D3DXVec3Length(&u);
float s = D3DXVec3Dot(&u, &v);
D3DXVec3Normalize(&d, &u); // <- problem is here
return 0;
}
我在项目属性中添加了 include 和 lib 目录,一切正常,除了 D3DXVec3Normalize 行。当我运行程序时,它显示:“错误 LNK2019:未解析的外部符号 _D3DXVec3Normalize@8 在函数 _main 中引用”。
谁能解释为什么 D3DXVec3Length 和 D3DXVec3Dot 函数可以正常工作(没有 Normalize 行)而 D3DXVec3Normalize 会产生错误?
PS 我使用 DirectX SDK June 2010 和 Visual Studio 2012。