DirectX の x64 ライブラリ ファイルと x86 ライブラリ ファイルの違いは何ですか?

StackOverflow https://stackoverflow.com/questions/2215163

  •  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ビットのオペレーティングシステムをターゲットにしてコードをコンパイルする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top