• 締切済み

DirectXのバージョンについて

書籍のサンプルプログラムを試そうとして環境構築しているのですが、イマイチうまくいきません。 DirectXSDK+bccの構成なのですが、makeは通るけど実行するときに「序数14がD3D9.dllから見つかりません」とか言うエラーが発生して失敗してしまいます。 出版社に問い合わせてみたところ、著者より「DirectXのバージョンが古いのでは?「DirectX 9.0c Redistributable (October 200 5) for Software Developers - Multilingual - 日本語」を試してみてください」との回答を得られました。 で、一応DLページを見つけ、DL→セットアップを起動してみたのですが…どうもきちんとインストールされていないような…。結果は変わらずです。 これをインストールするために、まず既に入っていたUpdate December 2004をアンインストール後、Redistributableを入れたのですが、DirectXのフォルダを確認できなかったので、どうもおかしいのではないかと思っています。 ひょっとしてRedistributableというのは差分ファイルで、既にSDKがインストールされていなければならないのかと思い、December 2004を再インストール後にRedistributableのインストーラを動かしてもやっぱり駄目。 microsoftのサイトを読んだりググってみてもイマイチ要領を得た情報は入らずと言った感じで正直お手上げです。 どなたかお詳しい方おられますでしょうか? こちらの環境を簡単に… ・Windows2000SP4 ・VisualC++6.0(ただし、このサンプルプログラムはbccでの利用を前提としているので、VC++は使用しない) ・bcc5.5 ・いずれも標準のフォルダにインストールしています。 それではどうかよろしくお願いいたします。

みんなの回答

  • jgk
  • ベストアンサー率75% (104/138)
回答No.1

Redistributableはただのランタイムです。作ったものと一緒にDirectXを配布したいときに使うやつです。 原因は、リンクしているライブラリがD3D9.DLLを序数でインポートしてるためだと思われます。 序数は変更される可能性があるため、普通は序数でインポートはしません。 リンクしてるライブラリがどんなものかわかりませんが、 単にd3d9.dllをインポートするためのライブラリなら、 COFF2OMF等でSDKのd3d9.libを変換したものをリンクしてやれば良いと思います。 D3D9.DLLの序数14はDirect3DCreate9の事だと思いますが、 私の環境(WinXP Pro SP2)ではD3D9.DLLのDirect3DCreate9は序数14でエクスポートされているのですが、 SDKのD3D9.DLLのDirect3DCreate9は序数13でエクスポートされてるんですよね… SDKのD3D9.DLLだと序数13までで、序数14がないからエラーでますが、 もし序数14で別の関数がエクスポートされていたら、Direct3DCreate9を呼んだはずなのに別の関数呼ばれて、何が起こるか分かりません。

ryotanpapa
質問者

お礼

回答ありがとうございます。 出版元とのやり取りでどうにか問題は解決しましたが、いまだにDirectXのことはよく分からず、まだまだ勉強が足りないなと思いました。 また何かありましたらよろしくお願い致します。

関連するQ&A

  • WGAの削除

    オフラインのPC(XP)に(今後にネットにつなぐ予定があるので)DirectXをインストールしようとして、友人のPC(XP)で、 DirectX 9.0c Redistributable for Software Developers - Multilingual をダウンロードしようとすると、WGAというものをインストールしなければならないようで。 友人は「邪魔になるからあとでちゃんと消してくれ」と しかし、プログラムの追加と削除には表示されません。 検索してもファイル本体を削除する方法はヒットしません(WGAをつ利用して何かを削除する等ばかり)。 どうやったら削除できますか?

  • DirectXによるpmdファイルの読み込み

    質問なのですが、現在DirectXでpmdファイルを読み込むプログラムを作成しているのですが サンプルプログラムで使用されていたpmdファイルを読み込むことには成功したのですが、 自分が使いたいLat式ミクを表示しようとするとフォルダの中に存在しているテクスチャが 見つからないと表示されアクセス違反が発生してしまいます。 なぜか指定されたデータは存在するのにプログラム側で「指定されたテクスチャファイルが見つかりません。」 と表示されるのか原因がわからず困っております。 読み込みのプログラムはこちらのサイトのpmdモデルの表示を参考にしました。 http://www2.ocn.ne.jp/~mhage/PIC_Trap/ データはソースコードが置いてある場所にモデル用のフォルダを作成しその中にすべて データを入れてあります。 パスの指定の方法は"関数の引数に("フォルダ名/モデル名.pmd")で指定しております。 ちなみにフォルダ内のデータをすべてソースコードが置いてるフォルダ直下に移した場合は表示されております . 環境 Windows7 VisualStudio2008 DirectXSDK November2007を使用しております

  • DirectX

    ラトルズ株式会社から出版されている15歳からはじめるDirectX9ゲームプログラミングC++編の第5章の関数ライブラリを作成するところでサンプルのソースプログラムを全て打ち込んだにも拘わらずウィンドウが表示されなくて困っています。どなたか同じ本を持ってる方、もしくはDirectXに詳しい方が居ましたら教えてほしいのですがよろしいでしょうか。 開発環境はVisual C++ 2008 Express Edition、DirectX SDK(June 2007)でOSはVistaです。

  • DirectXについての質問です。

    まず、経緯を話します。 あるゲームを20分ほどかけてDLしたのですが。 DL後、(C:)のファイルをWクリックすると 『このプログラムは不正な処理を・・・・』とか出てきて、あげくのはては、 フリーズしてしまいます。 何度やっても同じです・・・・ そこでそのゲームサイトの『Q&A』を見ると、こういう症例がありました。 『インストールされているDirectXのバージョンを確認していただき、 もしバージョンが8.1未満の場合は最新のDirectXをダウンロード、 インストールしてください。』・・とありました。 『DirectX』??聞いたことないものだったんですが。 調べてみると、わたしのOSではバージョン7.0だったのです。 これが原因でエラーがでるのかな?と思い。 さっそく最新バージョン9.0を(C:)にダウンロードすることにしました。 このDirectXはアンインストールできないみたいなので、 古いDirectXを残したまま、新しいバージョンを入れようとしました。 しかしこのDirectXをDLしたものの、これまたDirectXのファイルをWクリックすると エラーがでたりフリーズしたりします。 バージョン8.0とか8.1のほうがよかったのでしょうか・・・ なにぶん初心者なため、専門用語は極力少なめで お願いしますm(_ _;)m ・・・・私のOSはWindows98です。

  • DirectXについて

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

  • DirectXについて教えて下さい

    現在DirectX9.0を使用しています。 オンラインで使用するのに「DirectXエンドユーザーランタイム」をDLしなければなりません。しかし、インストールしても「新しいバージョンもしくは同等のバージョンが入っているため必要ないと判断しました」というメッセージが出て、インストールできていないようなのです。どうしたらインストールすることができるでしょうか?ご回答をお願い致します。 使用しているPC ・WinXP 下記の必要動作環境のためDirectXエンドユーザーランタイムのインストールが必要なようです。 GeForce FX 5800以上またはRadeon 9800以上のビデオチップを搭載したVRAM128MB以上のグラフィックカード

  • Directx について質問です。

    とあるゲームやりたく、それをDLしていざゲームを開始しようかと思った矢先、Directx9ランタイムをインストールしてくださいと表示されます。 Directx9ランタイム(どれが正しいのかは知らない)をDLしてコンポネートのインストールというところで 内部システムエラーが発生しました。 WindowsフォルダにあるDEXrror.logとDirectx.logを参照して、 問題を分析してください。 との表示が出されます。 Directx診断ツールで調べても異常はありませんでした。 Windows Vista tm Home Premium Intel(R)Core(TM)2 Duo CPU E6750 @ 2.66GHz 2.66GHz 自分はPC初心者なのでPCの情報でどれが必要かもわかりません。 必要なPC情報があるのであれば教えてください。 回答お願いします。 答えられることは何でも答えます。

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

  • DirectXについて

     僕はある、オンラインゲームをインストールして、起動しようとすると、「コンピューターd3dx10_43.dllがないためプログラムを開始できません。」的な文章が出て来ました。 あっ、これはDIrectXの事だと思い、自分のコンピューターのDIrectXのバージョンを確認した所、DirectX11になっていました。 オンラインゲームの動作環境はでは「Direct9.0c以上」って書いてあって、ちゃんと満たしているのにプレイ出来ないのは何故でしょうか? ちなみにオンラインゲームは「World of Tanks」という有名で大きなゲームです。  分かる人は直し方というか手順までしっかり教えて欲しいです。

  • DirectX9を使って球を動かすデモの作成

    当方DirectX初心者で、全く無学です。 先日DirectXに関する本を何冊か購入しまして、一読してみたのですが、全 く理解できませんでした…。 とりあえずDirectX9のシェーダー(?)で球を表示し、それをフルスクリー ンモードで画面の右から左に移動させるデモを作成したいのですが、プログ ラム(C++でお願いします)が全くわかりません。 浅薄な質問で申し訳ございませんが、よろしくお願い申し上げます。 なお、その際DirectX9対応のビデオカードがある場合は、ハードウェアで処理できるようにするプログラムを書いていただけると幸いです。 環境 Visual Studio .NET 2005 DirectX SDK - October 2006