• ベストアンサー

【VC#】Windowsアプリケーションからコンソール画面への文字列出力

Visual Studio 2005でのC#プログラミングについて教えてください。 Windowsアプリケーションからコンソール(コマンドプロンプト)に文字列を出力するにはどのようなコーディングを行えば良いのでしょうか? 通常、プロジェクトの新規作成の段階で「コンソール アプリケーション」を選択した場合はConsoleクラスのWriteメソッドやWriteLineメソッドを使用すればそのままコンソールの出力されると思います。 しかし、現在は「Windowsアプリケーション」を選択して開発を行っており、その状態からでは上記メソッドを使用しても視覚的には何も起きません。 コンソールに対して文字列を出力しようとしている理由は、現在ログをテキストボックスに表示させているのですが、そのログの量が非常に多く、扱う文字列のが多くなり処理が重くなってしまっているからです。 (textbox.Text = "新たに発生したログ" + textbox.Text; といった形で処理させています。) もし、コンソールに対する文字列出力が困難、または不可能であれば上記のような処理を実現するために適切な方法についてもご教示頂ければ幸いです。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.5

裏技ではありますが、簡単にコンソールを起動する方法があります。 プロジェクトのプロパティで「出力の種類」をコンソールアプリケーションに設定すれば、フォームと一緒にコンソールも起動します。 そうすれば、Console.WriteLine()でコンソールに出力できます。

shis
質問者

お礼

無事出力させることが出来ました。 ひとまずこの方法で進めます。 ありがとうございました。

その他の回答 (4)

  • isle
  • ベストアンサー率51% (77/150)
回答No.4

System.Diagnostics.Debugとか。

shis
質問者

お礼

MSDNライブラリで調べながら試してみたのですが、うまく使うことが出来ませんでした・・・・ TextWriterTraceListener a = new TextWriterTraceListener.System.Console.Out); Debug.Listeners.Add(a); Debug.WriteLine("test"); Debug.Flush(); としているのですが間違っていますでしょうか?

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★アドバイス ・C# から直接 Win32 API は呼べません。  呼ぶためには C# から呼べるインターフェイスを作って下さい。  そうすれば回答者 No.2 さんの回答にあるようにすれば出来ると思います。 ・C# でコンソール・ウインドウの作成、破棄など出来ませんか?  できるようになっていれば Win32 API は使わずにそのメソッド関数を使います。  私の知っている C# の本やサイトでは見つけることが出来ませんでした。 ・以上。参考に。→私もファイルに出力すべきだと思う。

shis
質問者

お礼

ご回答ありがとうございます。 コンソール・ウインドウの作成、破棄をキーワードに調べてみたのですが、私のほうでもやはり見つけることが出来ませんでした。 アドバイス通りファイル出力に切り替えようと思います・・・

回答No.2

C#からWin32APIが使えるのかどうか知らないのですが、 もし使えるのであれば、 CreateFileでコンソールを作成して、WriteFileで文字列を書き込むのが一般的だと思います。

回答No.1

おそらく、ファイルにログを出力するのが簡単で、スピードもさほど低下しないんじゃないでしょうか。 どうしても画面に表示させなければならないのでしたら、DataGridView か何か、表形式タイプのコントロールに出力するとかでしょうか。(ログの量にもよると思いますが。)

shis
質問者

お礼

ご回答ありがとうございます。 ログは画面に表示させる方向で考えております。 これまでは表示させる対象はテキストボックスを中心に考えていましたが、他のコントロールの使用も検討してみたいと思います。

関連するQ&A