• ベストアンサー

C#でCのコンソール出力の取得

C#でCのコンソール出力の取得 Cで作成したDLLをC#で利用しています。このときDLLファイルはC言語のprintfを使用しています。この出力内容を取得して、C#でテキストボックス等に表示する方法はありませんでしょうか。

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

  • ベストアンサー
  • ponzuinfo
  • ベストアンサー率53% (16/30)
回答No.1

使ったこと無いのですが Googleで調べたところ以下のWebページがヒットしました。 @IT .NET TIPS コンソール・アプリケーションの出力を取り込むには?[C#、VB] http://www.atmarkit.co.jp/fdotnet/dotnettips/657redirectstdout/redirectstdout.html

参考URL:
http://www.atmarkit.co.jp/fdotnet/dotnettips/657redirectstdout/redirectstdout.html

関連するQ&A

  • VBでコンソールアプリの出力を取得したいのですが

    ネット上で入手したコマンドプロンプト上で使うアプリをGUIで操作できるようにしたく出力を取得したいのですが出来ません。 ネットで出力の取得方法を調べて下記のようにしているのですがどうやっても取得できません・・・ (ipconfig や dir 等は問題なく取得できたのですが・・・) VBは2008です Dim p As New Process() p.StartInfo.FileName = "cmd.exe" ' 実行するファイル p.StartInfo.Arguments = "aaa.exe" ' 目的のアプリ p.StartInfo.CreateNoWindow = True ' コンソールを開かない p.StartInfo.UseShellExecute = False ' シェル機能を使用しない p.StartInfo.RedirectStandardOutput = True ' 標準出力をリダイレクト p.Start() ' アプリの実行開始 Dim output As String = p.StandardOutput.ReadToEnd() ' 標準出力の読み取り output = output.Replace(vbCr + vbCrLf, vbLf) ' 改行コードの修正 TextBox1.Text = output ' [出力]ウィンドウに出力 試しに自分で文字を表示するだけのコンソールアプリを作成して試したのですがそれは取得できました。 目的のアプリが特殊なのでしょうか? ソースがあったので見てみたのですがC言語だった為詳しくわからなかったのですが、出力は「Console.WriteLine」ではなく「fputs」を使用して出力していました・・・これが原因なのでしょうか? どうにかして、出力を取得する方法はないものでしょうか? よろしくお願いします。

  • コンソール出力をテキストに出力する方法(コンソール出力は残しつつ)

    【質問】  Perl内部で実行される実行ファイル(.exe)のコンソール出力(STDOUT,STDERR)をテキストファイルに出力したい。(Perlのコンソール出力も含む。) ※コンソール出力は残しつつ。 (コマンドプロンプトの)パイプとリダイレクトを使用して上手くいくかと思ったのですが、標準出力と標準エラーとでは標準エラーが先に出力されてしまい、本来出力される順番で出力されない。(標準出力はバッファにたまるため??) 何かいい方法はありませんでしょうか? 【環境】  Windows2000  Active Perl 5.8.8

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

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

  • C#のコンソールアプリ

    起動時に引数としてファイルの絶対パスを与え、そのファイルの内容を表示させる、というコンソールアプリを作成しようとしています。 このとき、引数にはエスケープ文字が入ることが予想されますが、そのまま処理に使用できるのでしょうか?

  • コンソールの出力をパイプでダイレクトに受け取りたい(VB)

    標記の件、お聞きします。 他のクライアント(VBアプリ等)からの利用が想定されていないコンソールアプリには、実行結果がコンソール(DOSプロンプト)にしか出力できないものが多いと思います。 このようなプログラムをVBで利用する場合、出力を一度ファイルにリダイレクトしてから、そのファイルをVBで読み込む方法が一般的だと思いますが、ファイルを介することなく、パイプ等を使用して出力を直接VBで受け取ることは可能でしょうか? 私が調べた限りでは方法を見つけられなかったのですが、ご存知の方教えてください。 そもそも、C++、COM(ActiveX)の知識、スキルがあれば、VBから使いやすいインターフェイスを作ることはいくらでも可能な訳で、パイプにこだわる必要はなさそうですが・・・。 仕事でも学校の課題(笑)でもないので、暇なときに気が向いたらコメントを頂けると幸いです。  

  • C言語 ファイルの出力

    こんにちは。 現在C言語学習中でファイルの出力でエラーが発生したのですが、どのようにエラーを起こしているのかわかりません。 ご指摘をお願いします。 #include<stdio.h> int main(void) { FILE *fp = NULL; fp = fopen("test1.txt", "w"); if(fp == NULL){ printf("ファイルをオープンでいませんでした。\n"); return -1; } else{ printf("ファイルをオープンしました。\n"); } fputs("Hello!\n", fp); fputs("Hello World!\n", fp); printf("ファイルに書き込みました。\n"); fclose(fp); printf("ファイルをクローズしました。\n"); int i; scanf("%d", &i); return 0; } エラーの内容は 1>LINK : fatal error LNK1104: ファイル 'C:\Users\拓哉\Documents\Visual Studio 2010\Projects\sample.c\Debug\sample.c.exe' を開くことができません です。現在使用中のC言語環境は上記の通り、Visual Studio 2010です。 学習仕立てで、あまりプログラミングについて知りません。 よろしければ、他に何か間違いがあればご指摘お願いします。

  • コンソール

    実行ファイル(abc.exe)を実行した時に出るコンソール画面を非表示にすることは出来ますか? ちなみにC++言語を使っていて、cygwinでコンパイルしています。どなたか宜しくお願いします。

  • VBAからDLL呼び出し

    vbaからC++で作成したDllファイル内関数を呼び出し、使用しているのですが、dllファイル内に記述してあるprintfが出力できません。 何か良い方法があるのでしょうか?

  • 回復コンソール

    PCをリカバリ中に以下のメッセージがでました。 ファイルが存在しないか壊れているため起動できません。 \system32\hal.dll 上記のファイルをインストールしなおしてくださいと表示され そこでいろいろ調べてみて回復コンソールを使ってみることになったのですが、回復コンソールでどのwindowsにログオンしますか?が表示されません。C:の後は空白の状態です。どうしたらいいのでしょうか どなたかアドバイスお願いします

  • C言語の参考書購入にあたって

    現在C言語の勉強をしています。 参考書を購入する資金が少なく、 どの参考書を買えば迷ってしまいます。 多くの開発者のお勧めは、署 林 晴比古 氏の「改訂シリーズ」がわかり易いと聞いていいます。 現在コンパイルなどの作業は、Visual Studio6.0の VC++6.0を利用してやっています。 MSDNのヘルプを検索してもイマイチ理解に苦しみます。 覚えたい概要は・・・ 外部から入力されてくるデータを タイムスタンプ、時間などを取得し、 テキストファイルに格納させ、 なおかつ改行する。 テキストファイルがない場合は新しく作成する・・・ 上記の内容が入ったDLLの作成方法。 内容は一つ一つ理解は出来てきているのですが、 基本的なDLLの作成方法、が詳しく説明しているような 文面が記述しているものか、 ヘッダファイルの作成方法が詳しく記述している・・・ 参考書を探しています。 現在本当にお金が少なく、一冊ぐらいしか 買えそうもありません。 よろしくお願いします

専門家に質問してみよう