今天上完了19期的集成测试自动化TCL(Tool Command Language)课,给他们介绍了TCL的扩展机制以及用VC搭建一个TCL集成测试环境。后来有同学问我是否可以用VC写一个Tclsh那样的解释器,我想了想,难的都教了(扩展指令都会了),简单的还不会么,于是打开VC,歘歘歘……
自从给大家讲了Console版的tcl集成环境搭建指南后,我发现开始喜欢写“傻瓜式教程”了——呵呵,希望能够给更多的初学者带来有效的帮助。
以下就直奔主题,带大家用VC写一个最简单的Tcl解释器。
首先,打开VC(注:本人用的是VC 6.0英文版),点菜单File-->New,出现如下这张图,选择Projects-->Win32 Console Application,在Project Name那里填入MyTcl,然后点OK按钮。
在接下来的向导窗口中选择“A Simple Application”,点Finish按钮。
再接下来弹出一个New Project Information,点OK按钮。
接着,双击VC项目工程的FileView(文件视图)里的MyTcl.cpp文件,输入代码如下:
[CODE]
// MyTcl.cpp : Defines the entry point for the console application.
// code by 51Testing.songfun
#include "stdafx.h"
#include <tcl.h>
int Tcl_AppInit(Tcl_Interp *interp)
{
if (Tcl_Init(interp) == TCL_ERROR)
{
return TCL_ERROR;
}
return TCL_OK;
}
int main(int argc, char *argv[])
{
Tcl_Main(argc, argv, Tcl_AppInit);
return 0;
}
[/CODE]
然后,点VC的菜单Project-->Add to Project-->Files,把tcl.h和tcl83.lib分别加进来。如图。
再在VC的菜单Tools-->Options的Directories里设置tcl83包的头文件路径和库文件路径。如图。
最后,点VC的“感叹号”Execute(执行按钮),看到什么了?
呵呵,是不是这个窗口和大家之前看到的那个tclsh应用程序很像啊?
它就是我们自己写的tcl解释器,怎么样,很有成就感吧,嘻嘻,其实代码也没有多复杂对吧。
实际上,这个地方只是演示一个例子,我们放着tclsh和scrīpt.Net这样的tcl解释工具不用,却自己用VC写一个tcl解释器的目的是什么?正是为了使用它的扩展机制来扩展我们自己定义的命令。所以上述的例子本身的意义还不是很大,必须结合有效的扩展函数的实现才会显得更有意义(这也是我上课给大家讲的内容)。
OK,本篇文章到此结束,大家有任何疑问可以随时和我交流,请各位不吝赐教啊,呵呵……