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

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

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

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

スポンサーリンク
スポンサーリンク

DxDiagを使って調査

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

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

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

DXDiag DirectXやグラボを診断するツールのダウンロード、場所 (Windows 7, Windows 10)
DXDiag とは DXDiag の読み方は、ディーエックスダイアグです。 DXDiag は、Windows 7, Wi...

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の読み方は、ディペンデンシーウォーカーです。 ...

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

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

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

https://www.microsoft.com/ja-jp/download/details.aspx?id=35

インストール後に、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 がインストールされると、無事にこのグラフィックスアプリケーションが起動するようになりました。

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

スポンサーリンク
スポンサーリンク
スポンサーリンク

フォローする