- ベストアンサー
作ったプログラムがすぐに閉じてしまいます。
C言語について全くの初心者です。 "hello"という文字を打ち出すプログラムを書いて、コンパイルをするまではうまく行ったと思うのですが… できたexeファイルを開けようとしても「cygwin1.dllが見つからなかったため、このアプリケーションを開始できませんでした。」と表示されて開くことができませんでした。 そこでcygwin1.dllをexeファイルと同じフォルダに入れてファイルを開いてみたところ「一瞬だけ開いてすぐに閉じる」という状態になりました。 どうすればファイルがちゃんと開くようになるでしょうか? もし回答するのに情報が不十分であればそれも教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。んっと、内容から推測するにWindows環境でcygwinを使っての作成かと思われるのですが。 Windowsでは、大まかに「GUIアプリケーション」と「コンソールアプリケーション」という種別が存在します。 ものすごく大まかにですが、Windowを作ってそのうえでなにやらかにやらするのがGUIアプリケーション、コンソール(よくdos窓とか呼ばれるアレです)上で動かすものがコンソールアプリケーションだと思っていただいてよろしいかと思います。 で。 作成された、多分極めてベーシックな int main() { printf("Hello world\n"); return 0; } というプログラムは、コンソールアプリケーションに属します。 そのため、例えばexplorerから、コンパイル後のファイルをダブルクリックすると、 ・「コンソールアプリであることを認識」して、まずDos窓を立ち上げる ・立ち上げたdos窓上でアプリケーションを動かす:ここでHello ... と出る ・プログラムが終了したのでdos窓をcloseする:閉じる という流れになります。 対処策としては ・dos窓を自分で開いてからプログラムを動かす のがベストなのですが。 後は、fgetsなどの入力系の関数を使って、プログラムを「終了させない」ってのも手です。 sleepつかって「一定秒数だけプログラムを停滞させる」のも、かなりアバウトですがとりあえず有効かと。
その他の回答 (1)
- jacta
- ベストアンサー率26% (845/3158)
Cygwinの場合、bash(コンパイルに使ったシェル)からプログラムを起動してください。 cygwin1.dllをコピーしてというのは、十分にCygwinの仕様を理解されている場合を除き、お勧めしません。
お礼
どうもありがとうございました。
お礼
もう少し色々と勉強をしないとちょっと理解できそうにもありません。 あまりずっと開けているのも失礼なので閉めます。どうもありがとうございました。