• ベストアンサー

DirectX9SDK(August2005)作品にd3dx9d_27.dllは必須?

突然ですが質問させていただきます。 ただいまDirectX9.0SDK(August2005)を使用してゲームを作っているのですが、完成作品を友達に上げたところ、「d3dx9d_27.dll」が無いといわれ、実行できないみたいです。DirectXランタイムは最新バージョンらしいのですが・・・ 自分のシステムフォルダを調べてみたら確かにそのDLLはありました。でも説明のところにDebugと書いてあるのですが、ReleaseでコンパイルしているはずなのにこのDLLってやっぱり必要なんですか? どなたか回答をお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • rigidbody
  • ベストアンサー率60% (20/33)
回答No.2

追伸です。Releaseでビルドしてる、との事ですね。 d3dx9のインポートライブラリのリンク指定(リンクオプション又は#pragma comment指定)は、ちゃんとRelease版(ファイル名末尾にdが付いてない)を指定されてるでしょうか? 自アプリをReleaseでビルドしても、使っているライブラリがデバッグ版なら、実行時もそれが要求されます。 >DLLってやっぱり必要なんですか 不要です。MS製のデバッグ版DLLは、いかなる物も再配布不可能だったと思います。

genki140
質問者

お礼

回答ありがとうございます。 dxstdafx.hのなかで #if defined(DEBUG) || defined(_DEBUG) #pragma comment( lib, "d3dx9d.lib" ) #else #pragma comment( lib, "d3dx9.lib" ) #endif というのを見つけました。 とりあえずReleaseでコンパイルしてもう一度送ってみます

その他の回答 (5)

noname#30727
noname#30727
回答No.6

#5です。 #3と書こうとして、#2と書いてしまいました。 失礼しました。

noname#30727
noname#30727
回答No.5

#2です >SDKフォルダ内にRedistフォルダが見つかりません 私の勘違いかもしれませんが、SDKのダウンロードとインストールの確認をするのは面倒なので・・・ ↓でどうでしょうか。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=136a7b29-aa12-4c3b-aa7d-15cd98a9a59c

  • rigidbody
  • ベストアンサー率60% (20/33)
回答No.4

>もう一度送ってみます 送る前に、自分で確認できるより良い方法があります。 それは「自分の環境で実行時、一時的にd3dx9d_27.dllを実行させないようにしてしまう」事です。具体的には下記の通りです。 (1) リビルドを完了 (2) 実行直前、d3dx9d_27.dllを環境変数PATHで示されるパスが通っていない場所へ移動(一時的) (3) 実行。実行出来たらOK。出来なかったらまだデバッグ版DLLが使われている証拠。 こんな感じです。この方が時間等の浪費が少なくて済みます。

noname#30727
noname#30727
回答No.3

私も不思議に思ったのですが、うまくいかない事があるようです。 DXSDKフォルダの中にRedistフォルダがあるので、このフォルダの中のDirectX9フォルダを一緒に配布して、dxsetup.exeを実行してもらって下さい。 それでうまくいくと思いますが、別の理由かもしれません。 ちなみに、Redistは、Redistribution(再配布)可能という意味です。

genki140
質問者

お礼

そんなことがあるんですか・・・ もしReleaseでもだめでしたら一緒に渡してみます。 ありがとうございましたm(_ _)m

genki140
質問者

補足

すみません、SDKフォルダ内にRedistフォルダが見つかりません・・・ どこにあるんでしょうか;;

  • rigidbody
  • ベストアンサー率60% (20/33)
回答No.1

Release版でリビルドし直し、友達にあげなおしてみて下さい。多分、うまくいくのではないでしょうか? d3dx9d_27.dllが無いと言ってる事から、Debug版の実行ファイルを友達に渡してしまったようです。 ( MS製のDLLは、Debug版の場合、ファイル名末尾にdが付く事がある。このDLLの場合、d3dx9の直後がそれ。MFC他のDLLもこの流儀に倣っている) 上記は、VC++を使って作っているという前提です。

genki140
質問者

補足

回答ありがとうございます。 早速Release版にし、d3dx9d_27.dllの名前を変更して実行してみたら起動しましたので、友達に渡したところ、今度はd3dx9_27.dllがないといわれてしまったらしいです^^; 一体どうしたらいいんでしょう・・・

関連するQ&A

  • DirectX9SDK(August2005)作品にd3dx9_27.dllは必須?

    このたび、DirectX9SDK(August2005)を用いてゲームの開発を行っているのですが、作成した物をほかのPCで動かそうとすると「d3dx9_27.dll」が無いといわれてしまい実行できません。 プログラムのベースにはMicrosoftのDirect3Dのサンプルを使用し、Commonフォルダのファイルも使用しています。 コンパイルはReleaseで行っています。 最新版のDirectX9ランタイムをインストールしたりいろいろと試してみたのですが結局うまくいきませんでした。 Microsoftは再配布を許していないらしいので一緒に配ることもできないですし・・・ どなたか解決策をお願いします!!m(_ _)m

  • directx9.0cを入れているのに「d3dx9_31.dllが見つかりません」とでます。

    あるソフトを動かした時に、「d3dx9_31.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。」と出ます。 いろいろ調べてみたところ、directxを最新にすると直ると書いてあったのですが、今入っているdirectxは最新版のdirectx9.0cです。 どうすれば動くようになるでしょうか?どなたかよろしくお願いします。

  • d3dx9_27.dllのインストール場所が分かりません

    あるオンラインゲームをインストールしたのですが、「d3dx9_27.dllが見つからない」と表示されてゲームを始めることができません。 公式サイトへ質問したところ、「d3dx9_27.dllはDirectX10にインストールされているので、d3dx9_27.dllを(オンラインゲームを)インストールしたフォルダ内に入れれば改善する」「d3dx9_27.dllファイルがインストールされている場所は、各PC環境により個別に違う為答えられない」との回答でした。 そこで、PC内の検索機能やインターネットで該当ファイル(の場所)を探していますが、どうしても見つけることができません。 ファイルの探し方や場所をご存知の方がいらっしゃいましたら、ご回答をどうかよろしくお願いします。(PCの専門知識はあまりありません) ・PC:DELL DIMENSION 9200 ・OS:Windows vista ・バージョン:DirectX10(DirectX診断ツールで確認しました) ・DirectX エンドユーザー ランタイム Web インストーラも実行しましたが、内部システムエラーと表示されて失敗します(Windowsのヘルプを見ても、削除できないとのことでした)

  • d3dx9_40.dllが見つからなかったため

    東方星蓮船をプレイしようと思いダウンロードをし、 DirectX ランタイム November 2008もダウンロードをしました。 しかし 「d3dx9_40.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります」 と出て、開始できません。ランタイムの保存先がわからないので、前に別に質問した(yahoo知恵袋)ところで「Dドライブに保存すればいい」と聞いたので、そこに保存したのですが、このようになってしまいます。 どのようにしたらできるようになるのでしょうか、教えてください。

  • 'd3dx9.lib' が開けません。

    DirectXの事で質問があります。 Microsoft Visual C++ 2008 Express Edition で Microsoft DirectX SDK (March 2008)の Matrices.cppというチュートリアルのコードを実行したのですが、 1>LINK : fatal error LNK1104: ファイル 'd3dx9.lib' を開くことができません。 とのエラーがかえってきます。 DirectX エンドユーザー ランタイム (March 2008) も DirectX エンドユーザー ランタイム ウェブインストーラも インストールしましたけれども、解決できません。 ツール オプション で、インクルードファイルとライブラリも DirectX SDK (March 2008)のインクルードとライブラリのパスを指定しました。 プロパティでd3d9.lib d3dx9.lib winmm.libを 追加依存ファイルに設定してます。 それでも、'd3dx9.lib' を開きたくないそうです。 どのようにしたら、Matrices.cppを実行できますでしょうか。 できれば、d3dx9.libも開けるようにしておきたいのですが、 どのようにしたら、d3dx9.libをひらけるようになりますでしょうか。

  • d3dx9_39.dllが見つからないというエラー

    とあるフリーゲームを落として実行しようとしたところ、 「d3dx9_39.dll が見つからなかったため。このアプリケーションを開始できませんでした。」 というエラーが出て起動できませんでした。 調べた所DirectX関係のエラーだということが分かりましたが、そのバージョンを導入すればいいのか分かりません。 このエラーが解決するDirectXのバージョンを教えてください。 WindowsXPSP3を使っています。

  • DirectX9SDKが入ってるPCでDirectX8プログラミング

    現在DirectX9.0SDKが入っています。 時々DirectXのサンプルで7や8のものもあり、それらを9でコンパイルしたいときは どうしたら良いのでしょうか? コンパイルするとd3dx8.hが見つかりませんなどと出てきます。 最初は関数名や型で8がつくものを9に強引に置き換えていましたが、 関数や定義によっては8から9にかけて削除されたものや仕様が変わってしまったものも 多く、これは労力がかかりすぎると思いあきらめました。 8.0のSDKを探してきてダウンロードし、VisualStudioの設定でできる インクルードファイルの位置を9.0から8.0のファイルパスに置き換えるしかないのでしょうか?

  • d3dx.33.dllについて

    友達が新しいゲームを起動しようとしたらしいんですが、彼のPCでは起動時に「d3dx.33.dllが見つかりません」と表示され、起動できない模様です。 Directx9.0に関することらしいのですが、僕ではPCの知識がほとんどないので、解決の糸口がつかめません。 もしよろしければ解決策のご教授をお願いします。

  • DirectXのSDKについて3つの質問

    こんにちは VisualStudio2008でDirectXをはじめようと思っている者です。 SDKをダウンロードしようと探してみたものの バージョンが頻繁に新しくなっているので、 何も考えず最新のものをダウンロードしていいのか不安です。 調べまわってもわからなかったことを3つ質問します。 質問1 最新のものはMicrosoft DirectX SDK (Nov 2007) のようですが、リソースノートを見るとVisualStudio2008へのサポートは March 2008 SDKからと書いてあります。これは3月まで待たないとVS2008ではまだDirectXは使えないということでしょうか? 質問2 古いSDKを使っている場合、新しいバージョンに変えたいときは 既存のSDKは一度完全にアンインストールしてから新しいものを入れることになるのでしょうか? はたまたアップデートができるのでしょうか 質問3 最新のSDKではDirectX10と9のどちらのアプリケーションも作れるのですか? なんだかわからないことだらけです。 あほみたいな質問かもしれませんがどうか教えてくださいませ

  • d3dx9_31.dll が見つからなかったため~…と出てゲームが起動できません、

    東方風神録、というCD-ROMからインストールしてパソコンで遊ぶシューティングゲームなのですが、 起動しようとすると 「d3dx9_31.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。」 とエラーが出てしまいます。 作品のHPである http://www16.big.or.jp/~zun/html/th10man/index.html のサポートFAQをみてみると、「DirectX 8.0以上をインストールしてください。」とありました。 ただ、バージョンを確認してみたら、自分のはDirectX 9.0c でした。 ※東方風神録の前の作品(東方永夜抄、東方妖々夢)は、正常に起動してくれております DiretX の何が原因なのでしょうか また、解決方法がありましたら教えてください よろしくお願い致しますm_ _m

専門家に質問してみよう