9

開発には 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 をインストールしました。足りないものはありますか?

4

3 に答える 3

8

これを自分で扱うとき、私はここから始めました:

DirectX SDK はどこにありますか?

次に - そのページのほぼ中央で、DirectXMath について読んでいます。

DirectXMath

適切なヘッダー ファイルをインクルードし、"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;
};

もちろん、「名前空間を使用する」ことはベスト プラクティスとは見なされませんが、この 1 つの例では、プログラムのすべての行にある「DirectX::」により、プログラムを (私にとって) 読み取ることがほとんど不可能になっていることがわかりました。 「使う」で。

幸運を!

于 2013-03-30T15:13:09.370 に答える