Tcl与SWIG 可能大家不是很熟悉swig这个名字,它的全称是Simple Wrapper and Interface Generator.它是干什么用的呢?是用来把C语言子程序包装成一些脚本语言的命令用的.比如,不少人喜欢使用Tcl/Tk来写点界面,但Tcl/Tk的数学功能实在太差,有时候就想自己给它扩充一些数学函数.又比如说,用Perl写个CGI程序,想用一个已经现成的自己编好的C语言子程序来处理用户返回的数据.这时候就用得上swig了. 其实刚才举的那些脚本语言都有自己的扩充接口,比如Perl有XS格式,Tcl/Tk有一套扩充内核用的C语言函数库.例如,要给Tcl扩充一个myfract命令,用来实现阶乘,可以这样做: (1)写一个C语言程序,假设叫做fract.c,内容如下: #include "tcl.h" int Tcl_myfract(ClientData notUsed, Tcl_Interp *interp, int argc, char { int i, j; double res=1.0; char re[30]; if (argc > 2) { Tcl_AppendResult(interp, "wrong args: should be myfract return TCL_ERROR; } if (Tcl_GetInt(interp, argv[1], &i) != TCL_OK) { return TCL_ERROR; } for (j=1;j

评论