0

Engine3D インターフェイス (私が作成) を実装する独自のライブラリを作成しています。

そのライブラリの「ユーザー」は、そのライブラリ (および Engine3D インターフェイスのヘッダー) をそのプロジェクトに含め、追加のライブラリなどなしで実行する必要があります。

残念ながら、プロジェクトから静的ライブラリを作成する場合、「ユーザー」はライブラリと DirectX ライブラリの両方を含め、DirectX などのディレクトリを設定する必要があります。

シンプルにする方法はありますか(必要なものは 1 つのライブラリだけです) 、ユーザーに対して透過的です( DirectX ライブラリ、プロジェクト内のディレクトリはなく、すべて自分のライブラリにあります)。

Visual C++ 2012 を使用しています。動的ライブラリを作成するのではなく、静的ライブラリを作成します。

4

1 に答える 1

2

1時間前にまったく同じ問題があり、非常に簡単な解決策を見つけたので、大きな偶然です。#pragma コメント ディレクティブを使用して Directx ライブラリをインクルードする場合は、次のように (名前だけでなく) ライブラリのフル パスを提供する必要があります。

#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/dxgi.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3d11.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx11.lib" )
#pragma comment ( lib, "c:/Softwares/Development/Lib/DirectX/Lib/x86/d3dx10.lib" )

明らかに、私の例のパスは私の個人的な構成に関連しているため、コンピューターの DirectX libs ディレクトリへの正しいパスを定義する必要があります。次に、プロジェクト構成 -> C/C++ -> 一般 -> 追加のインクルード ディレクトリに移動し、DirectX インクルード ファイルへのパスを設定するだけです。

それでおしまい!これで、DirectX インターフェイスをコンパイルして別のプロジェクトにリンクできるようになりました。その後、さらに設定を行う必要はありません。

お役に立てば幸いです。下手な英語で申し訳ありません。: )

于 2012-10-11T00:44:40.167 に答える