2012-01-27 12 views
0

独立したEXEとなるWin32コンソールアプリケーションが1つあり、フロントエンドはMFCで設計されています。Win32コンソールアプリケーションとMFCアプリケーション間の通信方法

私のGUIに表示されるWin32アプリケーションの結果を取得したいと思います。私は多くのことを検索し、いくつかのテクニックを発見した:パイプ

  • DDE
  • 共有メモリ
  • 名前

    1. は、これらのいずれかが私の問題への適切な解決策はありますか?誰も私が言及よりも簡単かもしれない他のソリューションを知っていますか?

    +2

    に見えます。 –

    +0

    +1コディが言っていること。あなたは別のDLLを必要としない、あなたはコンソールアプリケーションとWin32のGUIを持っている単一の.exeを持つことができます。しかし、何か他の理由で本当に別のプロセスが必要な場合:どのタイプのコミュニケーションが必要ですか?それはどの方向に入りますか?場合によっては、Windowsのメッセージが役に立ちます。 MFCアプリケーションのHWNDの1つにカスタムメッセージまたはWM_COPYDATAを使用してSendMessageへのexeファイルのために非常に簡単です。どちらのテクニックはあなたがやっていることに依存しているので、あなたのシナリオをより良く説明する必要があります:) – BrendanMcK

    +1

    @BrendanMcK:exeは、コンソールアプリケーションでもGUIアプリケーションでも、両方ではありません。 –

    答えて

    1

    コンソールEXEの出力がマシンで解析可能な場合は、標準入力と出力用のパイプでCreateProcess()を使用して解析し、UIに表示することができます。

    +0

    私は、パイプの代わりにどんな戦法でもプロセス間通信を行うことを知っていますか? – shri

    +0

    状況に応じてさまざまな方法があり、それらを実行する必要がある場合、私はあなたにオプションを与えました。これは単一のコマンドラインプロセスだからです。 – Deanna

    0

    あなたはあるアプリケーションから別のアプリケーションにもメッセージを送りますが、それは非常に簡単です。コンソールアプリケーションからコードを抽出し、MFCアプリケーションから簡単に呼び出すことができるDLLにそれを置くためにはるかに良いアイデアだろうWM_COPYDATA

    http://msdn.microsoft.com/en-us/library/ms649011%28v=vs.85%29.aspx

    +1

    コンソールアプリケーションでは、メッセージに適切に応答するためのウィンドウとメッセージポンプが必要ですか? –

    +0

    @ MarkRansomは、コンソールアプリケーションではうまく動作しません。 – zar

    +0

    ありがとうございました.. – shri

    関連する問題