初めて質問させて頂きます。よろしくお願いします。
VC++の6(Professional)を使用してバッチプログラムを作成いるのですが、
デバッグを行った場合にはDOS窓が開きprintf("TEST")などの記述内容が
DOS窓に表示されますが、
リリースのexeを他プログラムから起動された場合、DOS窓が開きません。
DOS窓を開き、そこにprintf("TEST")などを表示する方法はあるのでしょうか?
よろしくお願い致します。OSはWin2000Professionalです。
#NT系では「DOS窓」は開かないと思うが……。
バッチプログラムというのは,
複数のプログラムを逐次実行していく(コンソール)プログラムのことですね。
#MS-DOS/Windows NTのコマンドインタプリタにはバッチファイルというものがあるので……。
コンソールから実行しても表示されませんか?
単に
コマンドプロンプトを開く
↓
実行
↓
コマンドプロンプトを閉じる
が早すぎるのが問題,ということはないですか?
すみません。バッチプログラムというのは、
VC++で作成したexeファイルです。(拡張子が.batのものではありません。説明が不明解ですみませんでした)
・当プログラムは常にローカルコンピュータに常駐しているプログラムから起動されて、
あるフォルダにあるファイルが格納されると自動的に当プログラムが起動されるようになっています。
・当プログラムをコンソールから実行すればDOS窓は開くのですが、
その常駐プログラムから起動された場合はDOS窓が開かないので、
プログラム内で自分で開く必要があるのかと思いました。
・また、バッチ(拡張子が.bat)ファイルを作成して(バッチファイル内でexeを起動)、
常駐プログラムからバッチファイルを起動するようにしたのですが、
やはりDOS窓は開きませんでした。
(バッチファイルを直接起動すればDOS窓は開きます。)
・DOS窓が閉じるのが早すぎるという事ではないようです。
なんとかする方法はあるでしょうか?
#だからNT系にDOS窓はないって……。
新たにコンソールが開く,ということは,
Console Applicationではない,ということですね。
あと,常駐している,というのはどういうことでしょう。
Windowsはマルチプロセスですから,どんなプログラムでも常駐することができます。
はい。Console Applicationではありません。
常駐しているというのは、私自信言葉がよくわからないのですが、
常に起動している他アプリケーションで、
その時がくれば自動的に私のプログラムを起動してくれるプログラムです。
その場合、コマンドプロンプトの画面が開きません。
※DOS窓というのはコマンドプロンプトの画面の事でした。
AllocConsoleは成功していますか?
失敗しているのであれば,どのような理由でエラーになっているのでしょう。
あと,常駐プログラムとやらはまさか対話を許可されていないサービス,とかいうオチは無いですよね。
YuOさん有難うございます。
非常に言いにくい事なんですが、
対話を許可されていないサービスというオチでした・・・。
サービスの設定のところまで着目しておりませんでした。
有難うございました!!
解決チェック
ツイート | ![]() |