2011-08-04 12 views
0

私は変更できないアンマネージドdll(C++)を持っています。
このDLLからSTDOUTの結果をC#GUIプロジェクトに取得するにはどうすればよいですか?例えば はこのように隙間を持っているDLL:C#GUIプロジェクトでstdout + stderrをリダイレクト

__declspec(dllexport) void PrintMsg(); 

void PrintMsg() 
{ 
cout << "Some text" << endl ; 
} 

私は、このソリューションRedirect stdout+stderr on a C# Windows serviceを見つけることが、すべてのリダイレクトされたデータをファイルに書き込み、私は最良の選択肢は変数に出力を取得し、出力ファイルに保存せずに標準出力recive必要です。

可能であれば、どのように教えてください。

ありがとうございました。

+1

これはC++とVB.NETと何が関係がありますか? –

+0

申し訳ありませんが、私はこのソリューションをforgteしましたhttp://stackoverflow.com/questions/5510285/c-net-gui-application-native-library-console-stdout-redirection-via-anonymo 私にとって理想的な非常に良い方法ですが、仕事一度だけ、そして答えられていない理由:( – user497447

+0

セス、株価ストリーミングのための管理されていないDLLとネットで書かれたメインプログラム – user497447

答えて

0

私はCreateFile()に電話して、あなたのアプリケーションに固有の名前(FILENAMEではない)を渡して、「デバイス」を作成できると信じています。実際には2回、「書き込み」と「読み込み」の2回を実行し、SetStdHandleを使用してstdoutを「書き込み」ハンドルにリダイレクトする必要があります。 "読み込み"ハンドルを使用して、stdoutに送信されたすべてを読み取ることができます。私はこれを試したことがないので、あなたは任意の通信 "デバイス"を作る方法を正確に調べなければなりません。

関連する問題