我使用 Windows 8 / Visual Studio 2012、C++11 和 Direct3D 11 进行开发。
我包含这样的 Direct3D 库
#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "d3dx11.lib") // <-- error LNK1104: cannot open file 'd3dx11.lib'
#pragma comment(lib, "d3dx10.lib")
但是,链接器似乎找不到d3dx11.lib。将库所在的路径添加到项目的“库目录”后,链接器仍然找不到这些文件。即使我将 lib 文件复制到项目目录本身中,它也不起作用。
我从 2010 年 6 月开始安装了 Windows 8 SDK 以及 DirectX SDK。我是否遗漏了什么?
当我自己处理这个问题时,我从这里开始:
DirectX SDK 在哪里?
然后 - 在该页面的中间,阅读有关 DirectXMath 的内容:
直接X数学
它几乎只是包含正确的头文件并将“D3DX”前缀更改为“XM”。没那么简单,但这就是总体思路。
您的第一个程序可能会有这样的包含/使用:
#include <d3d11.h>
#include “DirectXMath.h”
#include “DirectXPackedVector.h”
using namespace DirectX;
using namespace DirectX::PackedVector;
struct mystruct
{
DirectX::XMFLOAT3 position;
DirectX::PackedVector::HALF packedValue;
};
当然,“使用命名空间”并不被认为是最佳实践,但在这个例子中,我发现程序的每一行上的“DirectX::”使我的程序几乎无法(对我来说)阅读 - 所以我去了与“使用”。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)