DirectX の x64 ライブラリ ファイルと x86 ライブラリ ファイルの違いは何ですか?
-
19-09-2019 - |
質問
最近、新しいコンピューターに Visual Studio をインストールし、それに DirectX をセットアップするために、[ツール] > [オプション] > [プロジェクトとソリューション] > [VC++ ディレクトリ] に移動し、[ライブラリ ファイル] の下に新しいエントリを作成しました。 C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86
そしてテスト プログラム (基本的には DirectX を初期化しただけ) を実行したところ、問題なく動作しました。でも、私が変わったら ...\Lib\x86
に ...\Lib\x64
, 、リンカーエラーが発生するよりも、 Direct3DCreate9
は未定義です:
1>main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "void __cdecl init(void)" (?init@@YAXXZ)
解決
x86 ライブラリは 32 ビット アプリケーション用であり、x64 ライブラリは 64 ビット アプリケーション用です。
Visual Studio の構成マネージャーで、対象のプラットフォームを確認できます。64 ビット アプリを実行するには 64 ビット バージョンの Windows が必要となるため、特別な理由がない限り、32 ビット アプリケーションを作成する必要があります。
他のヒント
x64
フォルダには、AMD64プラットフォーム用のライブラリファイル(Windowsの64ビット)が含まれています。あなたも、64ビットのためのアプリケーションをコンパイルする必要があります。また、あなたは生産実行可能ファイルを実行するには、Windowsの64ビットバージョンが必要です。
まあ単純な答えは、x86ライブラリが32ビットオペレーティングシステム用であり、x64のライブラリが64ビットオペレーティングシステムのためのものであるということです。
単にあなたが(すべての確率で)しているようなエラーが生成されますにリンクDirectXのライブラリを変更する64ビットライブラリへのあなたの32ビットコードをリンクしようとしています。あなたは、これは、正常にリンクしてもらうために64ビットのオペレーティングシステムをターゲットにしてコードをコンパイルする必要があります。