gpt4 book ai didi

c++ - DirectX D3DXVec3规范化未解析的外部符号

转载 作者:行者123 更新时间:2023-11-28 07:30:58 25 4
gpt4 key购买 nike

我有一个简单的 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:函数 _main 中引用了未解析的外部符号 _D3DXVec3Normalize@8”。

谁能解释为什么 D3DXVec3Length 和 D3DXVec3Dot 函数工作正常(没有 Normalize 行)而 D3DXVec3Normalize 产生错误?

附言我使用 DirectX SDK June 2010 和 Visual Studio 2012。

最佳答案

链接器错误意味着基本上代码没问题,但您没有提供 D3DXVec3Normalize 函数的位置,即实际函数所在的库。

MSDN suggests它是 D3dx9.lib,所以你添加到你的代码中:

#pragma comment(lib, "D3dx9.lib") // this can supposedly be D3dx10.lib as well

关于c++ - DirectX D3DXVec3规范化未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com