helloworld のプログラムコンパイルしたのですがそれダブルクリックして開いても一瞬コマンドプロントでて終わりです。どうすればいいのですか。

質問者からの補足コメント

  • うれしい

    回答ありがとうございます。やはりコマンドプロンプトから出ないといけないのですね。なんかバッチファイルみたいになったのでびっくりしました。もう少しソフト的なものを作りたいのですが。また次やってみます。

      補足日時:2017/04/18 20:31

このQ&Aに関連する最新のQ&A

A 回答 (3件)

作成したプログラムが「コンソールアプリケーション」であるならば、バッチプログラムであるため、そうなるのは当たり前です。



確認する方法として、以下の方法があります。
・コード上、プログラムの実行が終わったタイミングで、入力待ち状態にさせる。
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world");

            Console.Read(); // これ
        }
    }
}


・プロジェクトのプロパティ→デバッグ→開始動作で「外部プログラムの開始」を選択し、
 プログラムに「C:\Windows\System32\cmd.exe」を指定。
 コマンドライン引数に「/K exe名」を入力してデバッグ実行。
 (添付画像参照)

・Windows+Rを押して「cmd」と入力するなどしてコマンドプロンプトを起動し、
 exeをコンソール上にドラッグして実行。

・バッチファイルを用意して、実行。
 【test.bat】
  D:\hoge\helloworld.exe (exeのフルパスの記述)
  pause


なお、フォームを持つアプリケーションを作りたい場合、一般的には以下のいずれかのプロジェクトで作成することになります。
 (Visual Studio 2012の場合)
 ・Windows フォーム アプリケーション
 ・WPF アプリケーション

 (Visual Studio 2017の場合)
 ・WPF アプリ (.NET Framework)
 ・Windows フォーム アプリケーション (.NET Framework)
「helloworld」の回答画像3
    • good
    • 0

コマンドプロンプトを表示して、当該プロフラムの格納してあるフォルダまで移動します。


そこで、helloworld のプログラムを(ダブルクリックでなく)コマンドを打って起動します。
    • good
    • 0

コマンド プロンプトを開いてから、該当のプログラムを呼び出して実行する。



設定にもよりますが、該当のプログラムのexeファイルをコマンド プロンプトのウィンドウにドラッグ&ドロップするとファイル名がフルパスで入力された状態になります。
そのままエンターキー押下で実行できるでしょう。

ただし、「ファイルを読み書きする」とかいう段階になると期待した動作をしない場合があるので注意が必要ですが。
# カレントディレクトリとか、そういう歴史的な経緯を理解する必要がありますから。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q左シングルクリックと左ダブルクリックを両方使えるようにするには? 

例えばクライアント領域に対し、
左シングルクリックと左ダブルクリックを両方使えるようにするにはどうすれば良いのでしょうか?

左シングルクリック時

処理シングル


左ダブルクリック時

処理ダブル


このような場合、ダブルクリック時に処理ダブルの前に処理シングルが走ると思うのですが、処理シングルが走らないようにするには、タイマーで一工夫などの処理を追加する必要があるのでしょうか?

また、そもそもシングルクリックとダブルクリックの両方が使えるようにすることが仕様的に変なのでしょうか?

Aベストアンサー

やっぱりタイマーでしょうね。

http://www.hidecnet.ne.jp/~sinzan/tips/win/win_tip1d.htm


>>こういうことは一般的にはやらないのでしょうか?
>一般的にはやりません。

ごく普通にやります。

タスクトレイのアイコンなんてみんな使ってます。
Windows標準でも、ボリュームやハードウェアの取り外しとか。

というか、エクスプローラでファイルをクリックしたとき、
シングル→選択
選択時にシングル→名前変更
ダブル→開く
って動作しますよね。


>ダブルクリックとシングルクリックの操作を間違える
>可能性を考慮すれば、処理がまったく別なものにすることは
>インターフェース的に優しくないと思います。

たとえば、
シングル→メニューを出す
ダブル→デフォルトの動作をする

これってタスクトレイのアイコンだとあたりまえの動作のような気がするのですが。そんなことないですか?

Q左シングルクリックとダブルクリックを両方使えるようにするには?

よろしくお願いいたします
環境 WIN98 VC++6.0 MFC にて

左シングルクリックと左ダブルクリックの両方でメッセージボックスが出るようにコードを書いたところ、左シングルクリックの時点でメッセージボックスが出るためダブルクリックを実行することが出来ません。

また、メッセージボックス以外の処理でも同様になると思うのですが、どうすればダブルクリックが実行出来るようになるのでしょうか?

Aベストアンサー

>また、メッセージボックス以外の処理でも同様になると思うのですが、

なりません。
メッセージボックスだからです。

ダブルクリックの判定は、とある範囲の中でとある時間内に2回クリックされたかです。
メッセージボックスが表示されてフォーカスが外れた時点で判定はリセットされます。

なお、メッセージの来る順序は左のクライアント領域の場合、
WM_LBUTTONDOWN→WM_LBUTTONUP→
WM_LBUTTONDBLCLK→WM_LBUTTONUP

となります。

Qコマンドプロントの繰り返しプログラム

私プログラム関連は詳しくありません。
コマンドプロント使用手順として、A.fileをm.exeで解析してA.txtとして出力してます。
この作業をB.file,C.file・・・・と繰り返しているのですが、
独学でプログラムをコマンドプロントを使用して動かせるまでには至ったのですが、この作業を指定したファイルを全て自動で行ってくれるプログラムができないかと考えております。

基本を理解していないため、そんなことができるのかどうかも分かっておりませんが、
もし可能であるなら教えてください。
よろしくお願い致します。

Aベストアンサー

Windowsのコマンドプロンプトでということなら Batファイルで処理可能かも

--- Test.bat
@echo off
for /R %%i in (*.file) do m.exe %%~nxi

というファイルを準備して コマンドプロンプトにて test.batを実行すればいいでしょう

QMS-VisualC++:コンパイル後実行をするとDOS窓が一瞬だけ現れて消えるのをずっと表示させたいのですが。

cout << t << endl;

return 0;

}

単に変数を画面に表示させるだけのプログラムなのですが、Build後、実行すると一瞬DOS窓が立ち上がり表示された後すぐ消えてしまいます。この表示したDOS窓を持続させたいときはどうすればいいのでしょうか。おそらくものすごく基本的なことなのでしょうが、Linux上でしかC++をしてないのでわかりません。

Aベストアンサー

!マークのボタンを押して実行したら、

Press Any Key

って出てきて止まりませんでしたっけ?

Qプログラムが動きません。どうすれば動くのでしょうか?

このプログラム(test.cとする)の内容を標準入力から読み込み、copied.cという名前のファイルにwモードで書き込むプログラム。(標準入力からの読み込みとファイルへの書き込みでは、1文字単位での入出力)なのですが、エラーが出て動きません。動かすにはどうすればよいでしょうか?
<ソース>
#include<stdio.h>

int main(void)
{
char *filename = "copied.c";
FILE *wfp;
char ch;

wfp = fopen("filename", "w");
if( wfp == NULL ) {
printf("ファイルが見つかりません: %s\n", filename);
return 1;
}

while( (ch = getchar()) ) != EOF ) {
fputc(ch, wfp);
}

fclose( wfp );
return 0;
}
<エラー>
% gcc -o test test.c
test.c: 関数 `main' 内:
test.c:15: error: 文法エラー before '!=' token
test.c: トップレベル:
test.c:19: 警告: 関数宣言中に(型の無い)仮引数名があります
test.c:19: 警告: data definition has no type or storage class
test.c:20: error: 文法エラー before "return"
%
です。よろしくお願いします。

このプログラム(test.cとする)の内容を標準入力から読み込み、copied.cという名前のファイルにwモードで書き込むプログラム。(標準入力からの読み込みとファイルへの書き込みでは、1文字単位での入出力)なのですが、エラーが出て動きません。動かすにはどうすればよいでしょうか?
<ソース>
#include<stdio.h>

int main(void)
{
char *filename = "copied.c";
FILE *wfp;
char ch;

wfp = fopen("filename", "w");
if( wfp == NULL ) {
printf("ファイルが見つかりません: %s\n...続きを読む

Aベストアンサー

> while( (ch = getchar()) ) != EOF ) {
閉じカッコが1個多いですよ。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報