March09SDK =&gtに対するDX 9.0cアプリのコンパイル;古いDX 9.0c DLLで実行できません=>問題:)
質問
件名からシナリオを実行できません。
DirectX 9 March 2009 SDKがインストールされています。これは9の「sub」バージョンcですが、「sub-sub」バージョンは41なので、libs(d3dx9.lib d3d9.lib)はエクスポートをリンクしていますdxd3d_41.dll。
DX9.0cを搭載し、2009年3月から再配布できないマシンでアプリを実行しようとするとどうなるかは明らかです:)、dxd3d_41.dllが見つからないため失敗します。
この問題の標準的な解決策はどれですか? DX 9.0cを搭載したすべてのマシンでサポートされるようにアプリをコンパイルするにはどうすればよいですか? それも達成可能ですか?
ありがとう
解決
コンパイルに使用するSDKと一致するランタイムをインストールする必要があります。
これをDirectX9cがインストールされているすべてのマシンで機能させる唯一の方法は、古いSDK(最初の9.0c SDK)を使用することです。ただし、これを避けることを強くお勧めします。 March 09を使用して、アプリケーションのインストールと共にMarchランタイムをインストールする方がはるかに良いでしょう。
他のヒント
最も簡単な解決策は、ダウンロードページでMicrosoft DirectXエンドユーザーランタイムアップデーターにリンクし、これを最初に実行して、アプリケーションをインストールする前にランタイムコンポーネントが最新であることを確認するよう人々に指示することです。
その後、次の最も簡単なことは、必要なランタイムアップデータをアプリケーションにバンドルし、インストーラーを実行する前にユーザーに実行させることです。
これらはすべてSDKドキュメントに記載されています。
ルールは、d3dx9にリンクする場合、必要なredistランタイムコンポーネントがインストールされていることを確認して処理することです。
DXSDKドキュメントの「ゲーム開発者向けのDirectXインストール」ページをご覧ください。