从 C++ 重定向 cout C# 中的 dll 到文本框
我正在尝试将 dll 中方法的控制台输出 (cout) 显示到 C# 程序中的文本框。每次调用该方法时,控制台输出都会显示在 Visual Studio 的输出窗格中。有没有办法将输出窗格的内容重定向到文本框?
该 dll 是由其他人用 C++ 编写的,我无法控制更改它。 该 dll 使用 SWIG 进行包装,以便我的 C# 代码可以调用它。
I'm trying to display the console output (cout) of a method in a dll to a textbox in C# program. Every time I call the method, the console output will be displayed in the Output Pane of Visual Studio. Is there a way to redirect the content of the Output Pane to the textbox?
The dll was written by someone else in C++ and I have no control in changing it.
The dll is wrapped using SWIG so that it can be called by my C# code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在遵循大卫建议的链接后,我决定为您的问题编写一个更具体的解决方案。此版本允许您通过
BackgroundWorker
PropertyChangedEventHandler
回调在 GUI 中接收标准输出。以下是 ConsoleRedirector 的代码:
以下是完整示例表单的链接,演示了如何使用它:ConsoleRedirector 示例表单
After following the link suggested by David, I decided to write a solution to your problem which is more specific to your case. This version allows you to receive the stdout in your GUI via a
BackgroundWorker
PropertyChangedEventHandler
call back.Here's the code for the ConsoleRedirector:
Here's a link to a complete sample form which demonstrates how to use it: ConsoleRedirector Example Form