最近尝试完成一项任务,即是使用C#做一个粗糙的界面,然后使用C++做计算部分并生产exe;然后使用C#调用exe。
生产的exe会有一些控制台的输出,希望能够在控制台上输出一句,界面程序就能获取到这一行的字符串并将其输出到RichTextBox中,从而获取当前的处理进程。
说了这么多,起始就是:C#启动控制台程序并实时输出。
由于目前尚未获得原博主的转帖许可,只粘贴处博客处出,各位可移步:http://blog.csdn.net/ares1986/article/details/6364561 了解详情,非常感谢该博主提供的代码。
一下我将展示一下我的结果:
首先使用C++写一个helloworld.exe,每间隔一秒输出一行“Hello World!";
然后使用c#创建一个界面程序,如下:
不要嫌弃其长相啦,只是为了说明问题而已。
运行情况就是在RichTextBox中每隔一秒输出一行Hello World!
实验成功!
源代码百度网盘地址:http://pan.baidu.com/s/1dDg6VhJ。
我是在Vs2010平台下完成的。
最后总结一下于此相关的另外三个问题:
一:当exe的输出语句是用printf输出的时候不能够被获取,只能使用cout。已经测试过,读者也可以自行测试,目前还不知道为什么。
二:保持RichTextBox光标总是在输出行,只需要修改属性将HideSelection属性设置为false。
三:RichTextBox的换行符是”\r\n“;