• 締切済み

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>

みんなの回答

  • koedame
  • ベストアンサー率33% (10/30)
回答No.1

多分、初歩的なミスかもしれません。 例えば 1>h:\dx90sdk\include\d3drmobj.h(274) : error C2061: 構文エラー : 識別子 'LPDIRECT3D' は LPDIRECT3D ではなく LPDIRECT3D9 みたいな感じかもね。 後、ヘッダーの重複には気をつけてください。 それもエラーになります。 ヘッダーの重複とは色々とヘッダーファイルを インクルードしている間に 同じファイルに2回以上インクルードしてしまう ことです。

関連するQ&A

  • 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・; なにかアドバイスお願いします。

  • 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 については、サイトが全て英語だったこともあり、理解出来ませんでした。 以上宜しくお願い致します。

  • DirectX9.0でlibファイルやincludeファイルが欠落?

    http://www.geekpage.jp/programming/directshow/ このサイトにあるDirectShowによる動画やMP3再生のサンプルを 実行しようとしたところ、 DirectShowを使ってプログラムを書くには、dshow.hというヘッダファイルをincludeしなくてはなりません。 ///////////////////////////////////////////////////////////// #include <dshow.h> 次に、リンカの設定を行わなくてはなりません。 DirectShowを使ったプログラムをコンパイルするには、VisualStudioの「構成プロパティ > リンカ > 入力 > 追加する依存関係」に「strmiids.lib」という項目を追加して下さい ////////////////////////////////////////////////////////////// という説明があったので指示通りにstrmiids.libを追加したら strmiids.libが見つからないと出てきました。 気になってC:\Programfiles内のLibフォルダからそのファイルを 探してみると、strmiids.libというファイルが入っていないと言うこと が判明しました。Includeフォルダからもdshow.hというファイルは 無いと分かりました。 DirectXを入れなおせば解決するかなと思い、 DirectX9.0 2007年6月バージョンから最新版の2007年8月バージョン に入れなおしたのですが、やはり症状は同じでした。 ひょっとしてDirectShowは最新のDirectXではサポートされなくなったのでしょうか・・? もしそうならそれに変わる技術があるということでしょうか・・。

  • 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について

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

  • 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

  • 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というゲームです。 よろしくお願い致します。

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

  • Directshowを使いたいのですが…

    Directshowを使う為に、 Microsoft DirectX SDK (March2008)とDirectshowが入っている Extrasを共にHドライブに入れてVisual studio2005 visualC++でビルドしたのですが<dshow.h>インクルードが開けませんでした。 <dshow.h>は、Directshowのヘッダファイルを指しているものです。 必要なものは入れたはずなのですが…。 別なものでも入れる必要があるのでしょうか? それとも入れる場所は決まっているのでしょうか? 本によると、フォルダで指定先は決まっていなかったので後者は考えにくいです。 お願い致します。