编写自己的IDE:如何在图形界面中实时捕获控制台程序的标准输出

编写自己的"IDE"-- 如何在图形界面中实时捕获控制台程序的标准输出.

IDE是集成开发环境(Integrated Development Environment)的简称。印象里有很多出色的IDE,比如JBuilder和Kylix,比如Visual Studio。不知大家是否留意过,大多数IDE本身只提供代码编辑、工程管理等人机交互功能,我们在IDE中编译代码、调试程序时,IDE需要调用命令行的编译器、调试器完成相应的操作。例如,使用Visual Studio编译C++程序时,我们会在IDE下方的Output窗口中看到编译和连接的全过程,虽然我们看不到弹出的DOS窗口,但实际上是IDE先后启动了Microsoft C++编译器cl.exe和连接器link.exe这两个命令行程序,而cl.exe和link.exe的输出又实时反映到了IDE的Output窗口中。还有,我们可以在Visual Studio中配置自己需要的工具程序(比如特殊的编译器),然后让Visual Studio在适当的时候运行这些工具,并将工具程序的输出实时显示到Output窗口中。下图是我在Visual Studio 6.0的Output窗口中运行J2SDK的javac.exe编译java源程序并显示程序中语法错误的情形:


也就是说,大多数IDE工具都可以在集成环境中调用特定的命令行程序(WIN32里更确切的说法是控制台程序),然后实时捕获它们的输出(这多半是输出到标准的stdout和stderr流里的东西),并将捕获到的信息显示在图形界面的窗口中。

这显然是一种具备潜在价值的功能。利用这一技术,我们至少可以

1. 编写出自己的IDE,如果我们有足够的耐心的话;

2. 在我们自己的应用程序里嵌入全文检索功能(调用Borland C++里的grep.exe工具),或者压缩和解压缩功能(调用控制台方式的压缩解压程序,比如arj.exe、pkzip.exe等);

时间: 2024-09-20 15:06:39

编写自己的IDE:如何在图形界面中实时捕获控制台程序的标准输出的相关文章

gui-想在GUI的一个图形界面中写入队列的功能

问题描述 想在GUI的一个图形界面中写入队列的功能 想在GUI的一个图形界面中写入队列的功能,完成入队和出队,用的是TextField,但是TextField的那个getText()方法能不能一个数据一个数据的读呢,用什么方法,可以一个一个读,入队

学会写出"图形界面+数据库"的程序要多长时间?

[来信] 贺老师好,我也是在自学c++看了您写的启蒙一,感触很大,太谢谢了,我现在做网络运维,会接触到部份erp的内容,,想请老师指点下.从刚开始学c++到能写出个图形化界面并与数据库简单交互的,这样一个小程序,如果不考虑数据库方面的问题,正常要用多长时间,,? [回复] 第一个时间问题,我觉得是因人而异的.这要看个人以前的积累,以及学习能力.所以我无法为你做的估计,事实上,这确实因人而异. 我昨天在手机上看到你的私信时,想到的就是这些.今天开电脑要回复了,想想这是个很有意思的问题,多说一点.

Ubuntu不能进入图形界面但能进入控制台的解决方法

一般的进入系统后黑屏,按ctrl+alt+F1进入控制台(不要重启进xp ,这样别人教你如何操作,你没办法即时反应的) 能进入recover mode也可以 登录 连网(对adsl ,执行 sudo pppoeconf ) 关于其他上网问题自行解决 设置源 可以象我一样(看附件)用其他系统预先制作好sources文件,这是704 feisty的源 我默认的是CN99源,其他在前面用"#"注释调,当你需要其他的时候,将"#"去掉即可,并注释CN99 只留下其中一组 备

编程c语言-关于c语言控制台图形界面

问题描述 关于c语言控制台图形界面 请问 我在控制台画了两个矩形 怎么让两个矩形中间显示文字啊 请问 我在控制台画了两个矩形 怎么让两个矩形中间显示文字啊 解决方案 C语言控制台窗口图形界面编程(八):鼠标事件用C语言开发DOS下的图形界面C语言控制台窗口图形界面编程(七):键盘事件 解决方案二: 首先你依靠的是哪个库...你应该懂得纯c是不提供图形库的吧...你描述清楚

几款开源的图形界面库(GUI Libraries)

SmartWin++  遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows CE的应用程序...   XCLASS  XCLASS库是X Windows环境中的一个C++ GUI工具包的.它是基于Xlib的,由一套组件,包括从简单部件到复杂的,其中也包括许多常用的对话框.组件有MS Windows外观风格.   Windows++ Windows++是一个轻量级的C++应

《树莓派Python编程入门与实战(第2版)》——2.4 LXDE图形界面

2.4 LXDE图形界面 在LXDE图形界面中,可以看到以下两个部分. 桌面区: LXPanel区. 桌面区使你能够为常用的程序和文件创建快捷图标,从而更容易访问它们.只需要双击图标,就可以启动程序或打开文件.默认情况下,桌面上只会出现一个快捷图标,就是垃圾箱图标.可以在桌面的任何地方单击鼠标右键,以创建一个新的文件夹或文件图标. LXPanel是桌面顶部的包含了几个图标的一个工具栏区域.它使得你能够将一些较小的程序(叫作applet)放置到桌面界面上.有很多的applet可以用来直接在LXPa

解析:为何服务器大牛从不用图形界面?

在我们日常生活中,绝大多数网名都使用的是Windows操作系统,而微软在最初设计操作系统时,为了能够让更多的人使用,也做出了很多人性化设计.从DOS操作系统,到Windows XP,再到现在的Windows 10,大众化的操作系统在不断改进,但是改进的方向一定是所谓的"傻瓜式",同时适应现在的技术和市场发展(比如:AI和移动化办公需求). Windows也有虚拟控制台 但是,就算你没用用过,也一定在现实生活中,或者影视中看过Linux操作系统,看过某个科技狂人,对着电脑,输入很多莫名其

使用JAVA编写一个聊天程序,要求有图形界面,还有就是要显示联系人,后天就要交作业了,求大神!

问题描述 JAVA编写,聊天程序,有图形界面,还有界面显示联系人,类似于QQ的,但是极简的就行,求大神帮助啊,我后天就要交了,谢谢大神!!!!! 解决方案 解决方案二:网上有源代码--解决方案三:哪里有,我怎么没有找到,帮忙找一下!解决方案四:引用1楼u013335717的回复: 网上有源代码-- 哪里有,我怎么没有找到,帮忙找一下!解决方案五:上大学的时候写过好像还在U盘里趴着呢

第一次编写Java流布局图形界面_java

本文实例为大家分享了Java流布局图形界面编写代码,供大家参考,具体内容如下 package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() { super("第一个图形界面"); //设置框架窗口标题 this.setSize(200, 130); //设置组件尺寸(宽,高) this.setLocation(300, 240); //设置组件的显