tck c++

http://xbgd.iteye.com/blog/1109927


Tcl 作为一种脚本语言,有其优点,因而在C/C++程序中加入执行Tcl脚本的能力,可以提供脚本。 
Tcl 作为一种脚本语言,终有其局限性。比如速度和某些功能。在Tcl中调用 C/C++ 使得 Tcl 可以扩展。 

Tcl/Tk 和 C/C++ 的关系可以概括为三种情况: 

    在C/C++程序里面执行 Tcl 语句。 (Tcl Interpreter) 
    在 Tcl 中调用 C/C++ 实现的功能。 (Tcl Package) 
    C/C++程序本身是基于 Tcl/Tk 的程序。(Big Wish) 

在C/C++程序里面执行 Tcl 语句 (Tcl Interpreter) 

    Adding Tcl/Tk to a C application 

由于Tcl语言是解释器执行语言,可以想象问题的关键是知道解释器对象和要执行得Tcl语句。 
Tcl解释器(Tcl Interpreter)的创建和管理 

// 创建一个解释器 
Tcl_Interp *interp = Tcl_CreateInterp(); 

// 执行"init.tcl"进行初始化 
if ( Tcl_Init( interp ) != TCL_OK ) { 
     // Error 


if(Tcl_InterpDeleted(interp) != 0){ 
  // 解释器 已经被删除了 


// 通过解释器来使用Tcl 
const char *script = "set t 3 ; puts $t"; 
Tcl_Eval(interp,script ); 
// 删除这个解释器 
Tcl_DeleteInterp(interp); 

Tcl解释器中命令的执行 

/* 执行一段命令, 命令内容保存在 objPtr 中 */ 
int Tcl_EvalObjEx(Tcl_Interp *interp, Tcl_Obj *objPtr, int flags); 
/************************************************ 
* 第一次执行时,命令会被编译成字节码 
***********************************************/ 

/* 执行一个文件, 相对于 source 语句 */ 
int Tcl_EvalFile(Tcl_Interp *interp, const char *fileName); 

/* 执行一段命令, 命令内容保存在字符串中 */ 
int Tcl_Eval(Tcl_Interp *interp, const char *script ); 
int Tcl_EvalEx(Tcl_Interp *interp, const char *script, int numBytes, int flags); 
/************************************************ 
* 直接解析执行,不会编译成字节码 
***********************************************/ 
/* 执行一条命令 */ 
int Tcl_EvalObjv(Tcl_Interp *interp, int objc, Tcl_Obj **objv, int flags); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值