- ベストアンサー
【VC#】Windowsアプリケーションからコンソール画面への文字列出力
Visual Studio 2005でのC#プログラミングについて教えてください。 Windowsアプリケーションからコンソール(コマンドプロンプト)に文字列を出力するにはどのようなコーディングを行えば良いのでしょうか? 通常、プロジェクトの新規作成の段階で「コンソール アプリケーション」を選択した場合はConsoleクラスのWriteメソッドやWriteLineメソッドを使用すればそのままコンソールの出力されると思います。 しかし、現在は「Windowsアプリケーション」を選択して開発を行っており、その状態からでは上記メソッドを使用しても視覚的には何も起きません。 コンソールに対して文字列を出力しようとしている理由は、現在ログをテキストボックスに表示させているのですが、そのログの量が非常に多く、扱う文字列のが多くなり処理が重くなってしまっているからです。 (textbox.Text = "新たに発生したログ" + textbox.Text; といった形で処理させています。) もし、コンソールに対する文字列出力が困難、または不可能であれば上記のような処理を実現するために適切な方法についてもご教示頂ければ幸いです。 どうぞよろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
裏技ではありますが、簡単にコンソールを起動する方法があります。 プロジェクトのプロパティで「出力の種類」をコンソールアプリケーションに設定すれば、フォームと一緒にコンソールも起動します。 そうすれば、Console.WriteLine()でコンソールに出力できます。
その他の回答 (4)
- isle
- ベストアンサー率51% (77/150)
System.Diagnostics.Debugとか。
お礼
MSDNライブラリで調べながら試してみたのですが、うまく使うことが出来ませんでした・・・・ TextWriterTraceListener a = new TextWriterTraceListener.System.Console.Out); Debug.Listeners.Add(a); Debug.WriteLine("test"); Debug.Flush(); としているのですが間違っていますでしょうか?
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス ・C# から直接 Win32 API は呼べません。 呼ぶためには C# から呼べるインターフェイスを作って下さい。 そうすれば回答者 No.2 さんの回答にあるようにすれば出来ると思います。 ・C# でコンソール・ウインドウの作成、破棄など出来ませんか? できるようになっていれば Win32 API は使わずにそのメソッド関数を使います。 私の知っている C# の本やサイトでは見つけることが出来ませんでした。 ・以上。参考に。→私もファイルに出力すべきだと思う。
お礼
ご回答ありがとうございます。 コンソール・ウインドウの作成、破棄をキーワードに調べてみたのですが、私のほうでもやはり見つけることが出来ませんでした。 アドバイス通りファイル出力に切り替えようと思います・・・
- a-zA-Z0-9
- ベストアンサー率0% (0/2)
C#からWin32APIが使えるのかどうか知らないのですが、 もし使えるのであれば、 CreateFileでコンソールを作成して、WriteFileで文字列を書き込むのが一般的だと思います。
- tsukasa-12r
- ベストアンサー率65% (358/549)
おそらく、ファイルにログを出力するのが簡単で、スピードもさほど低下しないんじゃないでしょうか。 どうしても画面に表示させなければならないのでしたら、DataGridView か何か、表形式タイプのコントロールに出力するとかでしょうか。(ログの量にもよると思いますが。)
お礼
ご回答ありがとうございます。 ログは画面に表示させる方向で考えております。 これまでは表示させる対象はテキストボックスを中心に考えていましたが、他のコントロールの使用も検討してみたいと思います。
お礼
無事出力させることが出来ました。 ひとまずこの方法で進めます。 ありがとうございました。