こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

visual Studio 2008で.exeファイルが他PCで実行できません

C/C++初心者のものです。
私は 家のvista と visual Studio 2008 Express Editionを使って、DirectX9のプログラムを作っています。
ベータ版でもそうだったのですが、部活用にある
.xp + visual Studio 2005 
.vista + visual Studio 2005 
のパソコンでは
「アプリケーション構成が間違っています」
というようなことを言われ(正確には覚えていません。済みません…。)
そして部活用のvisual Studio 2005でコンパイルしなおすと家のパソコンで
「d3dx9_36.dllが見つからなかったため、このアプリケーションを開始できませんでした。…」
と出てきます。
これはOSの問題もあるのでしょうか?
製品版の購入もこれでは拒んでしまいます。
このエラーの理由は何ですか?
どうすれば解決できますか?
教えてください。お願いします。

投稿日時 - 2008-01-08 18:08:05

QNo.3661563

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

たくさんのエラーですか.
そこでエラーは出たことがないので,分かりかねますね...

以下のリンクにスタティックリンクした場合のビルドエラーについて載っています.
もしかしたら参考になるかもしれません.
http://www.g-ishihara.com/mfc_ge_01.htm

これで解決するといいですね.

投稿日時 - 2008-01-10 21:48:32

ANo.3

Managedのアプリでしょうか。
2008ではプロジェクトのプロパティで.NETフレームワークの構成を選択できますので、2005と合わせるには.NETフレームワークのバージョン2.0を選択してください。
#2005のほうはSP1を当てる必要があるかもしれません。

d3dx9_36.dllについては既に回答がありますが、使用しているDirectX SDKのバージョンが異なるためです。

さまざまなバージョンが存在するので、開発するときの環境と実行するときの環境を揃えるように意識してください。
例えばゲームソフトなどを配布する場合、VisualStudioやDirectX SDKが入っていない利用するだけのユーザーに対して、実行するためにどのような環境をどのように整えたら良いか面倒を見るのは開発者の責任です。

投稿日時 - 2008-01-09 17:34:56

補足

見ただけでは話についていけなかったのですが・・・

「.NETフレームワークの構成を選択できますので、2005と合わせるには.NETフレームワークのバージョン2.0を選択してください。」
ここの詳しい方法を教えてほしいです。
プロパティで開いても灰色の文字ばかりでどう変えるのかがわかりません。
とりあえず「参照のフレームワーク」はバージョン2.0になっていました。

投稿日時 - 2008-01-09 22:46:41

ANo.2

正確なところがわからないと正確な回答はできません。

とりあえず、以下のエラーメッセージについて
「d3dx9_36.dllが見つからなかったため、このアプリケーションを開始できませんでした。…」

こちらは、そのままなんですけどね。
DirectXのSDKは2ヶ月だったか3ヶ月だったかに1度アップデートされます。
一部挙動が変わったり、機能が追加されたりすることがあるため、DLLが別途用意されます。

つまり、開発環境が、d3dx9_36.dllを使うようにコンパイルしているのに、実行環境のDirectXが古いために、例えばd3dx9_30.dllまでしかないとなると、当然必要なdllがないということになり、実行できません。

同じバージョンになるように開発環境の設定を変更するか、最新のDirectXを入れてください

投稿日時 - 2008-01-08 19:37:08

お礼

わかりました。
古いものを使うと実行もできないのですね。
すみませんでした。

投稿日時 - 2008-01-09 22:40:22

ANo.1

「アプリケーション構成が...」
の場合には、MFC ライブラリをスタティックビルドすれば解決したような記憶があります。

[プロジェクトのプロパティ] - [構成プロパティ] - [全般] - [MFC の使用] - [スタティックライブラリで MFC を使用する]
にしてビルドしてみて下さい。


「d3dx9_??.dll が見つからない」
と言われた場合は、対象の dll を .exe と同じフォルダか system32 のフォルダに入れれば OK です。
DirectX EndUser Runtimes を入れれば簡単に解決すると思います。

投稿日時 - 2008-01-08 19:35:06

補足

「[プロジェクトのプロパティ] - [構成プロパティ] - [全般] - [MFC の使用] - [スタティックライブラリで MFC を使用する]
にしてビルドしてみて下さい。」
やってみましたが、リンクするところでエラーやワーニングがたくさん出てしまいます。なぜでしょう?

投稿日時 - 2008-01-09 22:34:06

あなたにオススメの質問