打造UltralEdit-32为C/C++编译器

当你想编译一个C++源程序的时候,用的最多的是什么工具呢?GCC?BCB?VC?
GCC在linux下面,一般不会用到,BCB和VC太大了,还要建立工程,编译一个控制台程序也生产N多一般来说是多余的文件。当然还有一个比较不错的小巧IDE叫做DevCPP。而今天给大家推荐一个好玩艺:

使用ultraedit和cl编译器打造简易c/c++开发环境
(注:出处不知道,早些的转载一年前的也有,所以里面的软件也不是最新的拉)

visual c++下,每编写一个简单的小程序,就得生成一大串中间文件,另人十分的不爽。下面提供一个新的编写c/c++程序的方法:
(1),下载utraledit-32编辑器,推荐v11.
(2),在utraledit-32中,分别点击菜单:高级-工具配置,出现一个dialog,用来设置用户自定义的菜单项。我们的想法是,设置一个编译菜单和运行菜单项,分别用来编译在utraledit-32编写的c/c++源文件。这样,在utraledit-32中编写好程序后,点击这两个菜单,就可以编译程序,和运行程序。运行的结果在utraledit-32的输出框中显示。具体的设置如下。
     编译:
     1,在命令行中填入:cl %n%e    我们知道,dos下的cl命令用来编译源文件。后面的两个参数%n%e表示要编     译的源文件的文件名。(注意每个字母必须是小写的,以下同)
     2,在工作目录中填入:%p
     3,在菜单项目名中填写 编译,这个名字就是我们要设置的编译菜单项的名字。
     4,对于下面的几个复选框,选中输出到列表框和捕获输出。
     5,点击 插入 按钮,建立编译菜单项
     运行:
     1,在命令行中填入:%n
     2,在工作目录中填入:%p
     3,在菜单项目名中填写 运行,这个名字就是我们要设置的运行菜单项的名字。
     4,对于下面的几个复选框,选中输出到列表框和捕获输出。
     5,点击 插入 按钮,建立运行菜单项
点击确定退出
这样,在 高级(A) 菜单下面可以看到出现了两个新的菜单:编译和运行
这样,当写好源程序后,点击工具编译和运行菜单,就可以编译和运行程序。最终生成.obj文件和.exe文件。这样的做法,比起使用vc要生成一大堆文件,而且要为每一个程序建立一个文件夹,是不是更加的方便呢?
(3),为编译和运行菜单设置快捷健:
     utraledit-32是一个强大的编辑器,可以使用户自己定义各个菜单的快捷健。具体的做法如下:
     点击菜单:高级-配置,再选中键映射这一栏,可以看到所有的菜单项对应的快捷健,当然也包括我们刚才生成的两个菜单,如果觉得这两个菜单的快捷键用得不爽的话,可以自己设定。更详细的做法就不说啦。
(4)原理:说了这么多,其实上面用到的是cl命令和utraledit-32提供的一些接口。我们知道,在dos下,可以用cl命令来编译c/c++程序(当然估计没人有会真的这么做)。而utraledit-32提供了一个接口,可以建立菜单项,通过点击菜单项来执行dos下的命令。需要考虑的是,dos下的cl命令要求提供源文件的文件名作为参数,这个参数,在utraledit-32用%n%e来代替。当然,也可以为%N%E,但推荐使用小写,大小写的区别请看utraledit-32的帮助文档。
8-7:补充:如果要编译链接生成DLL文件,把编译命令改为:    cl %n%e   /LD ,需要说明的是,生成exe文件的命令和生成dll文件的命令不能相互换用,所以,如果在utraledit下经常性地开发dll程序的话,还得再创建个编译dll文件得菜单为好,这样就避免了编译两种文件的时候改来改去。


附:如何在上述环境下编写win32 GUI程序:
上面的编程环境与用户是通过DOS控制台进行,但有时候觉得console too simple& naive啦,所以,想用些按钮,编辑框换换,但用VC又有上文所述的种种不爽。幸好,在程序前面加上如下代码,就可以用自己打造的简易环境来开发GUI了。
#pragma comment(link,"/subsystem:windows")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"gdi32.lib")

说明:第一行指链接程序时按照/subsystem:windows格式进行链接。我们知道,在VC中,对于应用程序有两种链接方式,一种是/subsystem:console,当用这种方式链接时,程序与用户交互将通过console进行。另一种就是上面的/subsystem:windows,这种情况下,程序与用户交互通过程序中的GUI进行。
仅仅指定上述链接格式还不够,因为GUI函数,如MessageBox,TextOut等,是放在user32.lib和gdi32.lib中的,但是直接用cl命令编译,并不会链接到这两个lib。所以,必须在程序前面加上第二行和第三行,才能进行GUI的开发

你可能感兴趣的:(打造UltralEdit-32为C/C++编译器)