Tcl与Tk编程:核心机制与实践指南
1. Tcl_Main和Tcl_AppInit
在Tcl编程中,有时需要创建包含Tcl的自定义主程序。不过,可加载模块的使用减少了对自定义主程序的需求。若将命令创建为可加载包,就可直接将其加载到 tclsh 或 wish 中。即便不需要自定义主程序,了解相关机制也有助于理解各部分的协同工作原理。
Tcl库通过 Tcl_Main 过程支持基本的应用程序结构,该过程设计为从主程序中调用。 Tcl_Main 主要完成以下三件事: - 调用 Tcl_CreateInterp 创建一个包含所有标准Tcl命令(如 set 和 proc )的解释器,并定义一些Tcl变量(如 argc 和 argv ),这些变量存储传递给应用程序的命令行参数。 - 调用 Tcl_AppInit ,该过程并非Tcl库的一部分,而是由应用程序提供。在 Tcl_AppInit 中,可以注册额外的特定于应用程序的Tcl命令。 - 读取脚本或进入交互式循环。
以下是一个典型的Tcl主程序和 Tcl_AppInit 的示例代码:
/* main.c */
#include
int Tcl_AppInit(