実行について

[戻る]
松本 2003/09/30(火) 11:43:30
分かりにくいかも知れませんが、宜しくお願いします。
現在、MFCにて作成したプログラムからコンソールアプリケーションで作成したプログラ
ムを実行させ、結果を出力する流れを考えております。
いろいろ参考図書を利用していますが、ぴんときません。
そこで、皆様方のアドバイスを頂きたいのです。
宜しくお願いします。
環境:WIN XP VC++6.0

es 2003/09/30(火) 12:00:51
どこまでできて、何がわからないんですか?

松本 2003/09/30(火) 12:14:13
esさん返信有難うございます。
コンソールで出力する所まではできています。
私が今やろうとしていることはMFCでDOS用のプログラムを実行させ、その結果をMFCでグ
ラフ化するということを考えています。
いろいろと参考にはしていますが、よく理解できません。
宜しくお願いいたします。

dairygoods 2003/09/30(火) 12:26:08
こちらは参考になりますか?
http://www.mtakahashi.com/cgi.cgi?09560

> いろいろと参考にはしていますが、よく理解できません。

具体的に何を参考にしてどう理解できないのかを示さないと、
細かいアドバイスは得られないですよ。

まお 2003/09/30(火) 12:26:21
あなたVC初心者の板でも質問してませんでしたか?
これだけの情報でアドバイスくれって言っても難しいと思うよ。

松本 2003/09/30(火) 12:39:58
VC初心者の板を参考にさせていただきましたが、私とは少し違うようです。
WIN32 console applicationを実行させるのにShellExecuteというコマンドが調べていた
らあるようです。
これをMFCのどこで宣言したらいいのか良く分かりません。それと、実行させるときは
EXEファイルに命令をするのか、.dswに命令をするのかが分かりません。
WIN32 console applicationで作成した一つのプロジェクトの中に読み込むテキストデー
タなどもあります。
ご教授ください。

akey 2003/09/30(火) 13:06:18
この状況ですと・・

一度VC++の入門書でMFCを使ったプログラムを作ってみることをお勧めします
Cの知識が無いのであればCの入門書から・・

PATIO 2003/09/30(火) 13:49:37
内容から察するに

VCの使い方を一から教えてくれと言っているのと同じ様な状態ですね。
掲示板で一から手取り足取り教えるのは不可能です。
そもそもそれだけのスペースがありませんし。
それぐらい膨大な情報量だと思ってほしいです。
せめてVCで簡単なWindowsアプリケーションが作れるぐらいには
なっていないとこういった掲示板で解決するのは難しいと思います。

VCは入門書もたくさん出ていますし、まずは簡単なものから始められた方が
よろしいかと思います。

松本 2003/09/30(火) 15:47:58
分かりました。MFCに関しましては再度勉強しなおしてきます。
有難うございました。
最後に一つだけ教えてください。
WIN32 console applicationにて作成したプログラムをexeファイルで実行するにはどう
したらよいですか?現在、exeファイルをクリックしてもすぐ閉じてしまいます。また、
そうすることで、*.dswファイルから実行する場合と違いが出てくるかどうかを教えて
ください。

euro2004 2003/09/30(火) 16:12:45
コマンドプロンプトから実行しましょう。
コマンドプロンプトはアクセサリの中にあります。

たいちう 2003/09/30(火) 17:08:02
私は大体、下記のソースを雛形にして作り始めます。

#include <stdio.h>
#include <conio.h>

int main()
{


    // quit
    printf("End.\n");
    getch();
    return 0;
}

松本 2003/09/30(火) 17:23:25
返信を下さった皆様、有難うございます。
勉強になります。
しかし、分からないのがdebugのフォルダ内にできるexeファイルが実行できないことで
す。実行できるプロジェクトもあります。
この違いは何なのですか?
ご教授ください。

dairygoods 2003/09/30(火) 17:29:34
> WIN32 console applicationにて作成したプログラムをexeファイルで実行するにはどう
> したらよいですか?現在、exeファイルをクリックしてもすぐ閉じてしまいます。

これは、実行できていないのでなく、
実行がすぐに終わって、即座にウィンドウが閉じているだけでしょう。

PAI 2003/09/30(火) 17:30:21
『実行できない』という言葉が何を示すのかがわかりません。

どうなってしまうのかを正確に説明してもらえませんか?

PAI 2003/09/30(火) 17:33:37
スタートメニューからファイル名を指定して実行で

cmd(win2000,XP)
command(9x)

を実行して、そこから cd コマンドで該当ディレクトリまで移動して、
そこでファイル名を入力して実行、

という作業は出来ますか?

akey 2003/09/30(火) 17:41:44
たいちうさんが示すようにソースコード(メイン関数)の最後に

>    // quit
>    printf("End.\n");
>    getch();
>    return 0;
>}

を入れてみたら実際に処理されたのかどうかがわかるとおもわれます。

松本 2003/09/30(火) 18:36:43
皆様返信有難うございます。
たいちうさんが示すようにソースコード(メイン関数)の最後につけ、実行し、
debugフォルダの中のexeファイルをクリックして見ましたが、開けることができないよ
うな状態(実行できない)になります。
どうしてですか。

PAI 2003/09/30(火) 19:42:05
>開けることができないような状態
これでもやっぱりどういう状態なのかわかりません。

また、別の問題ですが、
コマンドプロンプトからの実行は試してみましたか?

松本 2003/09/30(火) 19:50:16
PAIさん返信有難うございます。
書き忘れていました。すいません。プロンプトからも実行してみましたがうまくいきま
せん。一応、プログラムのほうはデバックして、*.dswのファイルからは実行できるよ
うになっています。しかし、デバッグフォルダの中のexeファイルからはopenができない
ような状態になっています。

PAI 2003/09/30(火) 19:53:32
>openができないような状態
だから『できない』ことじゃなくて、『どうなってしまうのか』を説明していただけません?
(3度目)

松本 2003/09/30(火) 20:02:56
PAIさん。
>『どうなってしまうのか』
デバッグフォルダの中のexeファイルからはopen(実行)ができない
ような状態になってしまうのです。
これ以上は表現できないですが・・

PAI 2003/09/30(火) 20:10:44
そうですか。

では、すみませんが私には何もアドバイスは出来ません。
エスパーじゃありませんから。

多分これだけの情報では誰も何もいえません。

この問題は忘れて、入門書を読まれることをお勧めします。

tib 2003/09/30(火) 20:35:03
>デバッグフォルダの中のexeファイルからはopen(実行)が
>できないような状態になってしまうのです。
>これ以上は表現できないですが・・
例えば「○○○...というエラーメッセージがでてきた」とか「実行を試みたが最後、PC全体
がウンともスンともいわなくなった」とか「本当は何かしら実行しているのかも知れない
けれど実行した形跡を全く残してくれないまま何事もなかったかのようにコマンドプロン
プトは新しいコマンドを入力ができる状態に戻った」とか。

こういう状況説明をPAIさんは期待しておられるのです。

松本 2003/09/30(火) 20:42:49
tibさん返信有難うございます。
私もできるだけのことはお話させてもらっています。
表現力が無く、恐縮しております。
順番に話の流れを書きますと
@WIN32 console applicationを用いてプロジェクト名1を作成しました。
A1のなかの1.dswを開けて実行することによりコマンドプロンプトへの出力可能。
Bその際、出来上がる1のフォルダの中のexeファイルから実行(1.dswではなく)を試みま
す。
C現在、そのexeファイルをクリックしてみましたが、全く開けない状態です。
これでお願いします。
わかりにくくてすいません。

えっと 2003/09/30(火) 21:23:02
関数の最後で

  return 0;
  getch();

のようになっていませんか?
新規プロジェクトでたいちうさんのコードのみ記述したexeも
うまく開きませんか?

#量がそれほど無ければmain()のところを、多いようであれば抜粋して
#アップした方が早いかもしれませんね。

松本 2003/09/30(火) 21:31:01
えっとさん
有難うございます。
はい。たいちろうさんの教えていただいた方法もだめでした。
失礼ですが、アップとはなんですか。

松本 2003/09/30(火) 21:46:20
すいません。
たいちろうさんのコードのみでは大丈夫でした。
私のソースですとどうやらだめのようです。

PAI 2003/09/30(火) 22:11:14
もう一回同じこと言っていいですか?
>(4)現在、そのexeファイルをクリックしてみましたが、全く開けない状態です。

『全く開けない状態』ってどういう状態のことですか?

えっと 2003/09/30(火) 23:20:05
>失礼ですが、アップとはなんですか
(アップロードの略です)
main()の部分をコピーして掲示板に載せてみては
どうでしょか?


そのほか自前での確認の仕方ですが

printf("step 1\n");    // 1 は適当ににカウント上げます
getch();

という2行を関数と関数の間ごとに入れて、実行ファイルを作成し
どのような動きになるか確認してみてはどうでしょう。
#雰囲気的にはこれで解決しそうです。


>(4)現在、そのexeファイルをクリックしてみましたが、全く開けない状態です。
ダブルクリックと言わず10回くらい連続でファイルをクリックしてみて
画面に一瞬(0.1〜0.2秒くらい)黒い画面がでるようであれば、開けないのではなく
実行はされているけどすぐに終了してしまっている状態となります。

どちらの常態かで回答が違いますので皆さんが指摘されているのだと思います。

えっと 2003/09/30(火) 23:23:14
常態 -> 状態
間違えました。すいません。

euro2004 2003/10/01(水) 09:21:43
おはようございます。
松本さん、新規にプロジェクトを作って
次のコードを実行してみてください。

1.*.dswファイルから実行する
2.Debugフォルダの中の.exeをダブルクリック
3.コマンドプロンプトから実行する。

/******************************/
#include <stdio.h>

int main()
{
    printf("hello\n");
    return 0;
}
/******************************/


ちなみにコマンドプロンプトから実行するには、そのexeファイルのフォルダに移ってか
ら

hoge.exeのあるフォルダ>hoge.exe

と入力するか

適当なフォルダ>C:\hogehoge\foo\hoge.exe

のようにexeのフルパスを指定してやるか

適当なフォルダ>..\..\foo\hoge.exe

のようにその場所からの相対パスを指定してやる必要があります。

単純に、
適当なフォルダ>hoge.exe

と入力しても、hoge.exeのあるフォルダにパスが通っていなければ

'hoge.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
のように文句を言われます。

私の環境WinXP pro SP1 + VS.NET2003 proでは
1,3はきちんとコンソール(正確にはなんていうのでしょう)が
開きhelloと表示され、2ですと一瞬開いたように見えますが
コンソール(?)はすぐに閉じてしまいました。

#見当違いでしたらすいません。

松本 2003/10/01(水) 10:28:08
皆さん有難うございました。PAI様、表現力が無かったことをお許しください。
euro2004さんが書いてくださった2の状態のこと(実行はされているがすぐに終了してし
まうこと)を実行できないといっていました。 
これを回避したかったのです。
いろいろ皆様の助言を聞き、自分で試してみました。
exeファイルをデバックフォルダの外に出し、クリックすることで実行されているよう
(*.dswファイルから実行したみたいな)になります。
これでいいのでしょうか?

επιστημη [HomePage] 2003/10/01(水) 10:43:24
'これでいいのでしょうか?'って、それはあなたが判断することでしょうに。

dairygoods 2003/10/01(水) 11:05:22
うまくいっているみたいです。
これでいいのでしょうか?

って言われても、他人には判断できませんよ。
判断材料が松本さんの感想だけしかないのですから。

松本 2003/10/01(水) 12:24:59
[[解決]]
分かりました。
皆様方長い間お付き合いしてくださって有難うございました。

松本 2003/10/01(水) 12:25:02
[[解決]]
分かりました。
皆様方長い間お付き合いしてくださって有難うございました。

古いスレッドには追加発言できません。