2009-08-05 21 views
1

我有一個基於對話框的MFC應用程序,通過它我必須調用一個.NET可執行文件。如何從.NET可執行文件獲取輸出並傳遞給MFC應用程序?

我的問題是:

  1. MFC應用程序將如何知道.NET可執行文件被關閉?
  2. 如果假設.Net可執行文件處理某些信息並想將輸出傳遞給MFC應用程序,那麼這怎麼實現。

請幫忙!!

+0

什麼是.NET應用程序的「輸出」?這是一個命令行應用程序寫入標準輸出嗎? – 2009-08-05 10:17:54

+0

不,它是一個winform應用程序。假設它爲特定的搜索關鍵字查詢數據庫並輸出結果。 – 2009-08-05 10:21:20

回答

2

MFC應用程序可以等待.NET進程以正常方式退出 - 使用等待句柄或輪詢它。對於收集輸出 - 最簡單的機制可能是.NET可執行文件寫入文件,然後MFC應用程序可以在之後讀取它。這很簡單但很容易實現!

1

1)您的MFC應用程序可以使用的CreateProcess()來運行.NET EXE,然後使用GetExitCodeProcess()功能,以找出是否已經完成。如果尚未完成,則此API返回STILL_ACTIVE(259)。

2)如果.NET EXE輸出到命令行,則可以使用標準句柄StdOut和StdErr讀取輸出。更多信息here

的ShellExecute( 「%SYSTEMROOT%\ SYSTEM32 \ Cmd.exe中 /C \」 路徑到你的.NET EXE \」>:

或者,通過命令行像這樣調用你的.NET EXE %TEMP%\ CaptureOutput.txt」,...)

,然後等待在 'CaptureOutput.txt' 文件並閱讀其內容。

相關問題