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); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录回到顶部↑第一部分 tcl基础 第1章 tcl的基本概念 1.1 tcl命令 1.2 hello,world! 1.3 变量 1.4 命令替代 1.5 数学表达式 1.6 反斜杠替代 1.7 花括号和双引号的组合 1.8 过程 1.9 阶乘举例 1.10 有关变量的更多细节 1.11 有关数学表达式的更多细节 1.12 注释 1.13 替代和组合总结 1.14 要点 1.15 参考 第2章 开始 2.1 source命令 2.2 unix tcl脚本 . 2.3 windows95开始菜单 2.4 macintosh和resedit 2.5 console命令 2.6 命令行参数 2.7 预定义变量 第3章 guestbook cgi程序 3.1 html快览 3.2 cgi动态页 3.3 guestbook.cgi脚本 3.4 定义表格及处理表格数据 3.5 下一步 第4章 tcl字符串处理 4.1 string命令 4.2 字符串和表达式 4.3 append命令 4.4 format命令 4.5 scan命令 4.6 字符串匹配 4.7 binary命令 4.8 相关章节 第5章 tcl列表 5.1 tcl列表 5.2 构造列表 5.3 获取列表元素:llength、1index和1range。 5.4 修改列表:1insen和lreplace 5.5 搜索列表:lsearch 5.6 列表排序:1sort 5.7 join命令 5.8 相关章节 第6章 控制结构命令 6.1 if then else 6.2 switch 6.3 while 6.4 foreach 6.5 for命令 6.6 break和continue 6.7 catch 6.8 error 6.9 return 第7章 过程和作用域 7.1 proc命令 7.2 利用rename改变命令名 7.3 作用域 7.4 global命令 7.5 使用upvar按名称调用 7.6 使用upvar创建变量别名 第8章 tcl数组 8.1 数组语法 8.2 array命令 8.3 利用数组创建数据结构 第9章 操作文件和程序 9.1 用exec运行程序 9.2 file命令 9.3 跨平台文件命名 9.4 操作文件和目录 9.5 文件属性 9.6 输入/输出命令总结 9.7 为i/o打开文件 9.8 读写操作 9.9 当前目录——cd和pwd 9.10 用glob匹配文件名 9.11 exit和pid命令 9.12 环境变量 第二部分 tce高级编程 第10章 eval命令 10.1 利用1ist构造命令 10.2 eval内部的concat 10.3 uploevel命令 10.4 连接参数的命令 10.5 subst命令 第11章 规则表达式 11.1 规则表达式语法 11.2 regexp命令 11.3 常用的规则表达式 11.4 regsub命令 11.5 使用regsub给tcl转换数据 11.6 其他使用规则表达式的命令 第12章 脚本库和程序包 12.1 定位程序包:auto—path变量 12.2 使用程序包 12.3 package命令 12.4 基于tcllndex文件的程序库 12.5 unknown命令 12.6 交互式的便利 12.7 tcl外壳的库环境 12.8 编码风格 第13章 映像和调试 13.1 clocl命令 13.2 info命令 13.3 跨平台支持 13.4 跟踪变量数值 13.5 交互命令历史 13.6 调试 13.7 don libes的调试器 13.8 调试tk脚本 13.9 性能调整 第14章 名称空间 14.1 名称空间的用法 14.2 名称空间变量 14.3 命令查找 14.4 嵌套的名称空间 14.5 过程导入 14.6 其他名称空间 14.7 回叫和名称空间 14.8 自检 14.9 namespace命令 14.10 包装现有的程序包 14.11 [incr tcl]对象系统 14.12 注释 第15章 事件驱动编程 15.1 tcl事件循环 15.2 after命令 15.3 fileevent命令 15.4 vwait命令 15.5 fconfigure命令 第16章 stcket编程 16.1 客户socket 16.2 服务器socket 16.3 回显服务 16.4 用http获取url 16.5 http包
1引言 2语法 2.1脚本、命令和单词符号 2.2置换(substitution) 2.2.1变量置换(variable subtitution) 2.2.2命令置换(command substitution) 2.2.3反斜杠置换(backslash substitution) 2.2.4双引号和花括号 2.3注释 3变量 3.1简单变量 3.2数组 3.3相关命令 3.3.1set 3.3.2unset 3.3.3append和incr 4表达式 4.1操作数 4.2运算符和优先级 4.3数学函数 5List 5.1list命令 5.2concat命令: 5.3lindex命令 5.4llength命令 5.5linsert命令 5.6lreplace命令: 5.7lrange 命令: 5.8lappend命令: 5.9lsearch 命令: 5.10lsort命令: 5.11split命令: 5.12join命令 6控制流 6.1if命令 6.2循环命令:while 、for、 foreach 6.2.1while命令 6.2.2for命令 6.2.3foreach命令 6.2.4break和continue命令 6.2.5switch 命令 6.1eval命令 6.2source命令 7过程(procedure) 7.1过程定义和返回值 7.2局部变量和全局变量 7.3缺省参数和可变个数参数 7.4引用:upvar 8字符串操作 8.1format命令 8.2scan命令 8.3regexp命令 8.4regsub命令 8.5string命令 8.5.1string compare ?-nocase? ?-length int? string1 string2 8.5.2string equal ?-nocase? ?-length int? string1 string2 8.5.3string first string1 string2 ?startindex? 8.5.4string index string charIndex 8.5.5string last string1 string2 ?startindex? 8.5.6string length string 8.5.7string match ?-nocase? pattern string 8.5.8string range string first last 8.5.9string repeat string count 8.5.10string replace string first last ?newstring? 8.5.11string tolower string ?first? ?last? 8.5.12string toupper string ?first? ?last? 8.5.13 string trim string ?chars? 8.5.14string trimleft string ?chars? 8.5.15string trimright string ?chars? 9文件访问 9.1文件名 9.2基本文件输入输出命令 9.3随机文件访问 9.4 当前工作目录 9.5文件操作和获取文件信息 10错误和异常 10.1错误 10.2从TCL脚本中产生错误 10.3使用catch捕获错误 10.4其他异常 11深入TCL 11.1查询数组中的元素 11.2 info命令 11.2.1变量信息 11.2.2过程信息 11.2.3命令信息 11.2.4 TCL的版本和库 11.2.5 命令的执行时间 11.2.6 跟踪变量 11.2.7 命令的重命名和删除 11.2.8 unknown命令 11.2.9自动加载 12历史记录 13TCL和C\C++ 13.1生成自己的TCLSH 13.2扩展自己的命令:方法(一) 13.2.1编写扩展命令对应的C/C++过程 13.2.2注册命令 13.2.3命令返回值和命令对应的过程的返回值 13.3扩展自己的命令:方法(二) 13.3.1Tcl_Obj结构 13.3.2编写扩展命令对应的C/C++过程 13.3.3注册命令 13.4利用clientData参数和deleteProc参数 13.5在C/C++应用程序中嵌入TCL 14总结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值