アプリケーションの起動

[戻る]
koni 2005/09/28(水) 10:46:06
Debugのなかのアプリケーションを起動しようとすると一瞬だけ黒くなってすぐに消える
のですがどうしてなのでしょうか?
Visual C++ 2005 Express Edition Beta 2を使っています。

Blue 2005/09/28(水) 11:13:23
コンソールアプリケーションをダブルクリックで実行すると、
処理がおわると自動的にコンソール画面を閉じてしまいます。
(Windowsのアプリケーションとは違います。)

printf等の出力結果を確かめたいのならば、コマンドプロンプトを起動して、
そこからEXEのパスを入力して実行します。

koni 2005/09/28(水) 12:15:01
内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
上のように出たんですがどうすればいいですか?

... 2005/09/28(水) 12:22:04
たとえばそのexeファイル、たとえばbar.exeがC:\foo\hogeという場所にあるなら
今いるフォルダからの相対パスかフルパスを指定してやるか、
そのフォルダに移動してbar.exeとしてやればよいです。

もしくはそのフォルダのパスを通しておいてやれば、どこにいてもbar.exeで
起動できます

KING・王 2005/09/28(水) 12:27:34
Blueさんのレスへの補足になります。

実行したいプログラム(EXE)が存在するパス(および実行ファイル名)を、
C:\TestProject\Debug\Test.exe
とした場合、以下の手順で行なってみてください。

(1)コマンドプロンプトを開きます。
(2)次のように入力後、Enterキーを押し、ドライブを変更します。
C:
(3)次のように入力後、Enterキーを押し、パスを移動します。(少し言葉が変?)
cd \TestProject\Debug
(4)次のように入力後、Enterキーを押し、プログラムを実行します。
Test.exe

コンソールアプリでは、私はよく次のようなものを用意して、
キー入力待ちにさせます。

--- HitAnyKey.h ---
#include <stdio.h>
#include <conio.h>
#include <windows.h>

extern void HitAnyKey( void );
-------------------

--- HitAnyKey.c ---
#include "HitAnyKey.h"

void HitAnyKey( void )
{
    // display message
    printf( "\nPlease Hit Any Key\n" );

    // wait key hit
    while( !_kbhit( ) ){
        Sleep( 100L );
    }
}
-------------------

koni 2005/09/28(水) 13:05:58
KING・王さんへ
キー入力待ちのコードですが、どこに使えばいいのでしょうか?
あと、製品版のVC++を買おうと思ってますが、学生の場合Visual Studio .NET 
theSpoke Premium Version 2003がいいのでしょうか?

DD. 2005/09/28(水) 13:10:02
私もVC++2005 Betaを使用していますが、
直接 exe から起動でなくていいならば
コンソールアプリケーションの実行結果は
「デバッグ」→「ウィンドウ」→「クイックコンソール」の画面から確認できます。

Blue 2005/09/28(水) 13:19:06
> キー入力待ちのコードですが、どこに使えばいいのでしょうか?
KING・王さんのコードは
#include <windows.h>
をしていますので、
Visual C++ 2005 Express Edition Beta 2
の別にPSDKをダウンロード&セットアップしなければ使えません。

ソースを変えずに実行するにはコマンドプロンプト開いて、exeをコマンドプロンプトに
ドロップして、エンンターを押せば実行できると思います。

ソースを変えてもいいならば、getchar関数とかを入れればいいです。

以前も同じような質問があったのでそのときに回答したスレのリンクを載せておきま
す。
http://www.vcppclub.com/bbs1/wforum.cgi?mode=allread&no=2487&page=10

koni 2005/09/28(水) 13:49:49
[[解決]]
皆さんありがとうございます。
過去のスレの内容を見てできました。
これからもここを使おうと思いますのでよろしくお願いします。

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