• 締切済み

dos窓を閉じなくするにはどうしたらいいでしょうか?

VC++6.0でコンソールアプリを作成し、実行するとDOS窓が直ぐに閉じてしまい結果を見る事が出来ません。LSI-C86で作成すると問題ないのですが、C&VC++を勉強し始めたばかりで、Windowbaseはまだまだ荷が重くコンソールbaseからと思ってやってみたらこの有様です。どなたかこの件について詳しい方が居られましたら是非教えて下さい。よろしくお願いします。

みんなの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.3

こんにちは。itohhといいます。 いくつか方法はあります。 1.No.2の方がアドバイスしている方法。   デバッガー上で実行するのではなく下記の3.と同じ実行方法になります。   デバッガーのうまみがなくなると言うことです。 2.ブレイクポイントを設定して実行(F5)する方法。   ブレイクポイントの設定方法ですが。(ご存じだったらすみません。) 例。 void main() {   printf("hello、world!");   // (1) }                 // (2) ・(1)にカーソルを移動してマウスを右クリックでメニューを表示して  「手」マーク(ブレイクポイントの設定/削除)を選択してください。(F9キーでもOK) ・F5キーでデバッグ開始です。ブレイクポイントまで実行されると思います。 ・1行ずつ実行するにはF10キーで行えます。これで(2)まで実行することが出来ます。 3.DOS窓を開いてexeファイルがあるフォルダーに移動して実行する方法。 「LSI-C86でコンパイルした実行ファイル」と「VC++6.0でコンパイルした実行ファイル」の違いですが、 16ビットアプリか32ビットアプリかの違いではないでしょうか?(これは、自信なしです。) (使ったことがないので間違っているかもしれませんが、LSI-C86コンパイラーって16ビット用ですよね?)

inokun
質問者

お礼

おはようございます。出社して今itohhさんのアドバイスを見てます。昨日あれから自分なりに自宅の色々な本とか見たりして調べたりしたんですが、itohhさんの言われる『16ビットアプリか32ビットアプリかの違いではないでしょうか』と言うのが今回の問題の一番のポイントのような気がします。windowsの種類やバージョンの違いによってどのようにDOSが振舞うのかあまり詳しくないからこのような疑問が出たんだと思います。VC++ではwin32コンソールアプリは作成出来ても16bitは出来ないようなので(新規作成の中に出てこないですし...)この違いによるものだとitohhさんの書き込みを見て確信出来ました。ありがとう御座いました。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

実行時にコントロールキーを押しながらF5キーをを押すとプログラム終了時にいったん停止しませんか?

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

コンソールアプリのアイコンを右クリックして出るメニューから, プロパティーを選択してください. 次に,開いたダイアログの「プログラム」タブをクリックし, 「プログラムの終了時にウィンドウを閉じる」チェックボックスの チェックをはずしてください. これでOK(Win98の場合)

inokun
質問者

補足

情報が少なすぎました。OSはWin2K+VC++6.0です。単純な”hello、world!”をVC++のウィザードを使わず、拡張子を.cにしてビルドした場合、LSI-C86でコンパイルした実行ファイルの方は、wolvさんの言う通りプロパティの右クリックでプログラムTABが出て、「プログラムの終了時にウィンドウを閉じる」チェックボックスのチェックを外す事が可能なんですが、VC++で作った方のexeファイルはプロパティにプログラムTABが出ないんですよ。この違いはなんなでしょう?で、その解決法が一番知りたいところなんですが。。。

関連するQ&A