• ベストアンサー

DirectXプログラミングの参考書を読んで

『マスタリングDirectXプログラミング 橋口ゆうすけ著』を読みながら、ゲームプログラミングの練習をしているのですが、このプログラムを実行してもエラーが出て実行できません。 エラーがでているのは #include <d3dx9.h> の部分。 エラー内容は include ファイルを開けません。'd3dx9.h': No such file or directory です。 その内容どおりd3dx9.hというファイルがないからなんでしょうけど。。。 本書ではこの内容を実行してみてと書いてあります。 ということは実行できるはず・・・ ちなみに、本書の内容は「DirectX SDK(August 2007)」を用いて・・・と書いてあるんですが、その意味がよくわかっていません。 これが原因なのでしょうか? それともd3dx9.hというファイルがないからなんでしょうか? とは言え、#include <windows.h>や#include <basetsd.h>という行はエラーなく読み込んでいるようなんですが。。。(そんなファイルないよ・w・; なにかアドバイスお願いします。

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

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.3

とりあえずVC++ディレクトリについて確認しておいたほうがよいかもですね。 VS(2008PEで確認)の設定項目でツール、オプションの一番上にプロジェクトおよびソリューションというのがあります。でこの中にVC++ディレクトリというのがあります。 そうすると右側に意味深なのが出るのですがこれのうち、ディレクトリを表示するプロジェクトのところをインクルードファイルにするとインクルードするファイルを検索する時の設定を行うことができます。ここにディレクトリを指定しておくと、ローカルにその名前のヘッダがない場合、コンパイル時に自動的にここにあるファイルを検索します。 たとえばwindows.hなら、本来ならインクルードする際 #include "C:/なんかいろいろ/windows.h" みたいな感じで指定しなければならないのですが、おそらく$(WindowsSdkDir)\includeみたいなのでパスが通っているのでわざわざ書く必要がないというわけです。 というわけで、DirectXのSDK話ですが、前の回答者の書かれているとおり、バージョン(August 2007とかNovember 2007とかのこと)によって全然違うといういやらしいSDKですので、本に書いてあるとおりのバージョンをインストールしましょう。そして、上で書いたインクルードディレクトリのところでパスを通しましょう(ここはがんばって)。 以上参考までに

その他の回答 (2)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

DirrectXのインストールをしていないのでは http://www.microsoft.com/downloads/details.aspx?FamilyID=529f03be-1339-48c4-bd5a-8506e5acf571&DisplayLang=en ↑からDirectX SDK(August 2007)をダウンロードしてインストールしましょう もっと新しいDirectX SDKのバージョンが出ていますがDirectXはバージョンによる違いが大きいので本にあるバージョンでやったほうが不具合はおきにくいでしょう。 August 2007以降だとDirectMusicがなくなったりしますし

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

・あなたの使っているコンピュータに DirectX SDK はインストールされていますか? ・DirectX SDK のヘッダがあるディレクトリは「ヘッダファイルを探すディレクトリ」に入っていますか?

関連するQ&A

  • DirectXとカメラ

    カメラ画像を取り込むプログラムとDirectXで3Dを表示するプログラムを一つのシステムにしようと試行錯誤しているのですが、ヘッダーファイルの競合のせいで(多分)、うまくいきません。 1>h:\dx90sdk\include\d3drmobj.h(274) : error C2061: 構文エラー : 識別子 'LPDIRECT3D' このようなエラーが15件ほど出ます。 ネットでいろいろ調べてみたのですが、どれもうまくいきません。 どうしたらいいでしょうか? WindowsXPPro、VisualStadio2005、DirectX9で作業しています。 以下が使用しているヘッダーファイルです。これらを一つのヘッダーにまとめてそれをそれぞれのcppファイルでincludeしています。 #include <windows.h> #include <dshow.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> include <qedit.h> #include <math.h> #include <mmsystem.h> #include <sys/timeb.h> #include <time.h> #include <atlbase.h> #include <malloc.h> #include <memory.h> #include <tchar.h> #include <string.h> #include <process.h> #include <winsock2.h> #include <ws2tcpip.h> #include <iostream> #include <d3d9.h> #include <d3dx9.h> #include <d3d9types.h>

  • DirectXについて 「d3dx9.hファイルが見つかりません」というエラー

    今後DirectXが必要になりそうなので そちらの勉強をはじめようと思っています。 ですがそもそもDirectXというものすら何なのかわからない 状態でしたのでまずは書籍を購入し、目を通しました。 やはり文章だけでは理解が難しかったので 付属のサンプルソースをCDからコピーし実行してみたのですが、 > fatal error C1083: include ファイルを開けません。 > 'd3dx9.h': No such file or directory とエラーが表示されビルドが中断されてしまい、 実行することができないようです。 「d3dx9.h」が見つからないということはわかるのですが、 「DirectX SDK 2007February」というものをインストール しているのですが、他にもなにか必要ということなのでしょうか? また、拡張子が「.x」のファイルを実行すると Direct3D Viewerが立ち上がるのですが全て読み込みエラーで 画面には何も表示されていません。 試にメタセコイアで作ってみたものも駄目でした。 これも上記の「d3dx9.h」というものが関係していたりしますか? ちなみにDirectXで作られたゲームはプレイできます。 やはり私の環境の問題なのでしょうか・・・。 お分かりの方がいらっしゃいましたら、アドバイスを いただければ幸いです。よろしくお願い致します。

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

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

  • DirectXのdmusici.libについて

    宜しくお願い致します。 ここ2ヶ月ほど、XPSP2及びVC++6.0の環境下で、win32APIを使って簡単なミニゲームを細々と作成してきましたが、たまたまDirectXについて記載してある本を入手した関係で、環境をVC2008Express+DirectXに変更しました。 それ以前にプログラミング経験は無い為、レベルは初心です。 質問: 1)dmusici.libは存在するのか? 2)存在するとしたら入手先はどこか? 3)存在しない場合、エラーを無くすにはどうしたら良いか? とりあえず上記設定で、DirectXのフォルダに入っているサンプルプログラムを動かそうと思ったのですが、 LINK : fatal error LNK1104: ファイル 'dmusici.lib' を開くことができません。 と言われてしまいました。 サンプルプログラムは、 #include <Windows.h> #include <mmsystem.h> #include <d3dx9.h> #pragma warning( disable : 4996 ) #include <strsafe.h> #pragma warning( default : 4996 ) … と記載しています。 色々調べたところ、dmusici.h というインクルードファイルは存在し、dxguid.lib をリンクして使用するらしいのですが、dmusici.lib については、サイトが全て英語だったこともあり、理解出来ませんでした。 以上宜しくお願い致します。

  • DirectXのエフェクトをやりたくて・・・

    VisualStudio2005 ExpressEditionを用いてプログラミングの初歩をやろうとしているんですが・・DirectXSDKをつかったエフェクトを作るときなぜかインクルードファイルとライブラリファイルのところにのところにDirectXSDKのファイルを追加しただけではエラーが出てしまいます。パスもしっかりとしたはずなんですがなんででしょうか?過去ログ見てもわかりませんでした; ------ ビルド開始: プロジェクト: D3DFWsamplw, 構成: Debug Win32 ------ コンパイルしています... Renderer.cpp c:\dx90sdk\include\d3d9.h(33) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Scene.cpp c:\documents and settings\owner\my documents\visual studio 2005\projects\d3dfwsamplw\d3dfwsamplw\scene.cpp(6) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory Window.cpp c:\documents and settings\owner\my documents\visual studio 2005\projects\d3dfwsamplw\d3dfwsamplw\window.cpp(8) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory コードを生成中... ビルドログは "file://c:\Documents and Settings\Owner\My Documents\Visual Studio 2005\Projects\D3DFWsamplw\D3DFWsamplw\Debug\BuildLog.htm" に保存されました。 D3DFWsamplw - エラー 3、警告 0

  • '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をひらけるようになりますでしょうか。

  • DirectXについて

     僕は某オンラインゲームをインストールしました。 そして、動作環境を見てみるとどうやらDirectX9.0cが必要なようでこれと、DirectX エンド ユーザー ランタイム Web インストーラを外付けHDDにインストールしました。 そして、ゲームを起動しようとすると、なんか「コンピューターに d3dx10_43.dll がないため、プログラムを開始できません。」というエラーが出て来ます。   どうやらd3dx10_43.dllはDirectXの事らしいのですが、なぜちゃんとDirectX9.0cを入れてるのにこのようなエラーが出るのでしょうか?  DirectX9.0cやユーザーランタイムを外付けHDDにインストールしたからでしょうか?  あっ、そういえば元々PCにはDirectX11が入ってるのですが、それが原因ですかね? まあとにかくDirectX9.0cをしっかり入れてるのになぜコンピューターにないというエラーが出るのかを知りたいです。 よろしくお願い致します。

  • DirectXについて

    僕は某オンラインゲームをインストールしました。 そして、動作環境を見てみるとどうやらDirectX9.0cが必要なようでこれと、DirectX エンド ユーザー ランタイム Web インストーラを外付けHDDにインストールしました。 そして、ゲームを起動しようとすると、なんか「コンピューターに d3dx10_43.dll がないため、プログラムを開始できません。」というエラーが出て来ます。   どうやらd3dx10_43.dllはDirectXの事らしいのですが、なぜちゃんとDirectX9.0cを入れてるのにこのようなエラーが出るのでしょうか?  DirectX9.0cやユーザーランタイムを外付けHDDにインストールしたからでしょうか?  あっ、そういえば元々PCにはDirectX11が入ってるのですが、それが原因ですかね? まあとにかくDirectX9.0cをしっかり入れてるのになぜコンピューターにないというエラーが出るのかを知りたいです。  *知ってる方は教えて欲しいですが、11から9.0cにダウングレード出来ますか? もし、出来ないならどうすればオンラインゲームはプレイ出来ますか? ちなみにオンラインゲームはあの有名なWOTというゲームです。 よろしくお願い致します。

  • DirectX9 lib関連

    DirectX9のGraphicsを使用したいので d3d9.libをリンクしたいのですが、プロジェクトのリンカの中に設定してビルドをすると、【d3d9.lib】は見つかりません。 とエラーが出てしまいます。 DirectX9はインストール済みです。 Microsoft DirectX SDK (August 2006)もインストール済みです。 どうやったら、ビルドが通るようになりますでしょうか? 知っているかたいましたら、ご教授願います。 よろしくお願いいたします。

  • DirectX + C++ コンパイラについて

    Borland C++ CompilerでDirectX 9.0を開発しようとして、 (Visual.NETは資金的に・・・) http://www.clootie.ru/cbuilder/index.html これを使ってなんとかできるようになりました。 しかし、D3DX9sab.dllが必要になってしまうんです。 通常のDirectXのように単一の実行ファイルにしたいのですが、どなたかご存知の方はいらっしゃいませんか。 というか、無償のコンパイラでDirectXを使いたいんです。 ちなみに、DLLをEXEにまとめる、ILMergeというソフトを見つけたんですが、なぜかエラーに・・・。 たぶん.NETで作成したもの限定なのかな。。 DLLからスタティックライブラリに変換できんかなぁ