簡體   English   中英

從第三方DLL捕獲StandardOutput

[英]Capture StandardOutput from a third party DLL

我有一個從程序中調用的DLL,它將狀態輸出到Visual Studio輸出窗口(假設這是標准輸出),並且我想在運行時捕獲該輸出。

有關如何執行此操作的所有示例均假設我正在使用Process啟動外部應用程序或控制台應用程序,然后從Process實例捕獲StandardOutput,而我本人已經完成了多次。 但是在這種情況下,我的程序直接調用DLL-我沒有開始額外的過程。

當我的程序調用DLL時,我想讀取它打印到標准輸出中的內容以記錄它以進行調試,如果DLL失敗,則可能退出我的程序。 當DLL調用返回時,我的程序應正常繼續。

我知道當另一個線程在DLL調用中時,我需要另一個線程來處理DLL輸出; 我只是不知道如何首先捕獲輸出。

您的程序可以調用Console.SetOut用您自己的實現替換標准輸出流。

這應該允許您根據需要捕獲標准輸出。 請注意,您可能還需要替換標准錯誤流,具體取決於DLL如何寫入輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM