d3dx9_42.dllかd3dx9_43.dllが見つからなくてグラフィックスアプリが起動しない

スポンサーリンク
Windows

あるグラフィックスを使うWindowsのアプリケーションをテストしていると、あるパソコンでは動くけれど、別のパソコンでは動かなかったりしました。

このアプリケーションですが、起動しないパソコンの上で起動しようとすると、エラーが出る訳でもなく、しばらくマウスカーソルがグルグルしてそっと終わるような感じで、どこでエラーが出ているのか分かりません。

難易度が高そうな問題ですが、原因を調べてみました。

DxDiagを使って調査

今回、起動しないアプリは、グラフィックスを使うアプリケーションだったので、原因は多分、DirectX関連だと思いました。

そこで、まず、DxDiagを使って調べてみます。

 

DxDiagとは以下のようなDirectX診断ツールです。

DXDiag DirectXやグラボを診断するツールのダウンロード、場所 (Windows 7, Windows 10)
DxDiagで何ができるのでしょうか? DXDiag とは DXDiag の読み方は、ディーエックスダイアグです。 DXDiag は、Windows 7, Windows 10等のWindows OSで、特にグラフィックに関して、...

 

DxDiagによって出力されるログを眺めてみました。

 

すると、以下の事が分かりました。

このグラフィックスアプリが動かないパソコンでは

D3D9 Overlay: Not Supported

 

このグラフィックスアプリが動くパソコンでは

D3D9 Overlay: Supported

 

となっているようです。

D3D9とは、マイクロソフトから提供されるDirectX 9のDirect3Dに関するDLLなんでしょうかね。

オーバーレイがサポートされていないってグラフィックスドライバとかの問題だろうか。。。?

Dependency WalkerでDLLの依存関係を調べてみる

今度は、このアプリが使っているDLLの依存関係をDependency Walkerを使って調べてみます。

 

Dependency Walkerはライブラリの依存関係を調べてくれる便利なツールです。

Dependency Walker (depends.exe) のダウンロード場所、WindowsでEXEやDLLの依存関係を調査するツール
Dependency Walkerって何ができるのでしょうか? Dependency Walker とは Dependency Walkerの読み方は、ディペンデンシーウォーカーです。 Dependency Walkerは、Win...

 

すると、どうやら、d3dx9_43.dll が不足しているパソコンでは、問題のアプリケーションが動かないことが分かりました。

 

そこで、このアプリが動かないパソコンで、d3dx9_43.dll が含まれるDirectXを以下のURLからダウンロードして、インストールしてみます。

 

DirectX エンド ユーザー ランタイム Web インストーラ

Download DirectX エンド ユーザー ランタイム Web インストーラ from Official Microsoft Download Center
Microsoft DirectX® エンド ユーザー ランタイムによって&#12289...

 

インストール後に、C:\Windows\System32 を調べてみると以下の通りになりました。

2005/12/03 06:53 2,624,760 d3dx9d.dll
2006/03/31 13:41 5,516,496 d3dx9d_30.dll
2005/02/05 19:45 3,544,272 d3dx9_24.dll
2005/03/18 17:19 3,823,312 d3dx9_25.dll
2005/05/26 15:34 3,767,504 d3dx9_26.dll
2005/07/22 19:59 3,807,440 d3dx9_27.dll
2005/12/05 18:09 3,815,120 d3dx9_28.dll
2006/02/03 08:43 3,830,992 d3dx9_29.dll
2006/03/31 12:41 3,927,248 d3dx9_30.dll
2006/11/29 13:06 4,398,360 d3dx9_32.dll
2010/05/26 11:41 2,401,112 D3DX9_43.dll

 

d3dx9_xx.dll っていうファイルが山ほど出来るけど、少しずつバージョンアップしてるってことだろうか。

 

D3DX9_43.dll がインストールされると、無事にこのグラフィックスアプリケーションが起動するようになりました。

 

オーバーレイのサポートは関係なかったのかな?

 

コメント