2013-03-29 14 views
7

私は開発用にWindows 8/Visual Studio 2012、C++ 11、Direct3D 11を使用しています。d3dx11.libが見つかりませんか?

私はこの

#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") 

などのDirect3Dのライブラリが含ましかし、リンカはd3dx11.libを見つけるように見えることはできません。ライブラリの場所をプロジェクトの 'ライブラリディレクトリ'に追加した後でも、リンカはそれらのファイルを見つけることができません。私は、プロジェクトディレクトリ自体にlibファイルをコピーした後でも、動作しません。

2010年6月からWindows 8 SDKとDirectX SDKがインストールされました。何か不足していますか?

+0

"D3DX11"のlibファイルはコピーしているものに含まれていますか?私はあなたがそれをリンクすることができますが、D3DXユーティリティライブラリはもはやサポートされていません - 実際にはあなたは2010年のSDKを全くダウンロードする必要はありません。 D3DXはDirectXMathライブラリ(XMMath)に置き換えられました。変換は少し痛みですが、それほど悪くはありません。 –

+0

それを知らなかった。私はD3D11の新機能です。私はこのlibなしでそれを行う方法を見ていきます。 – bytecode77

+0

時々D3DXが行く方法です(DirectXMathはCUDAとの相互作用を複雑にするため、私はDirectXMathを使用しません)。また、DirectXMathのインタフェースの中には、移植(例:初期化)に不十分なものもあります。あなたは修正を見つけましたか? (Windows SDKを使用してD3DXにきれいにアクセスする方法) – axon

答えて

8

これで自分自身を扱うとき、私はここに開始しました:

Where is the DirectX SDK?

をそして - そのページの真ん中程度で、DirectXMathについて読む:

DirectXMath

それはちょうどほとんどです右側のヘッダーファイルや「D3DX」の接頭辞を「XM」に変更することが含まれます。それほど単純ではありませんが、それは一般的な考えです。

あなたの最初のプログラムは、おそらくこのような介在物/ usingsを持っています:

もちろん
#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」という:: "私のプログラムのすべての行で私のプログラムを読むことがほとんど不可能になっていたので、私は"使う "と一緒に行きました。

幸運を祈る!

+0

DirectXMathはWindows 8以降です。 Windows Vsta/7でも使用できるものはありますか? – bytecode77

+0

また、d3dxを使用しないチュートリアルは見つかりませんでした。あなたはこの不本意な図書館を使わないものに私を指摘できますか? – bytecode77

+0

私は問題なくWin7で使用しました。私が見つけることができる唯一のチュートリアルは、MSの(http://code.msdn.microsoft.com/windowsdesktop/Direct3D-Tutorial-Win32-829979ef)であり、それは私を得るために十分だった。実際にXMを使いたくない場合は、D3DX11.libとDX10のサポートなどでリンクすることができます(OPのように)。しかし、あなたが始まったばかりなので、現在のライブラリを使用することもできます。 –

1

はおそらく、あなたの代わりに、 "* DirectxSDK/libに/ x86" はプロパティで悪いパスを含め、あなたが "含まれている" * DirectxSDK/libに」。

+0

コメントのようです。 –

0

私はVS2010を使用しても、この問題に実行しているが、ちょうど私ました>追加のライブラリディレクトリ

その後追加 - 。。

プロジェクト - >プロパティ - >構成プロパティ - >リンカは、あなたがに問題があるライブラリファイルで提供リンカに必要な解決策を見つけましたあなたがそこにしたいライブラリファイル。私のために働いた、うまくいけばあなたのために働く、 DirectXMathを使いこなしたり、新しいチュートリアルを見つける必要はありません。

関連する問題