Libgui目录下包含了insight IDE的实现.(正式实现在gdb/gdbtk/generic目录下)
因为Insight是用tcl tk实现的GDB前端,所以这个目录下主要是C和TCL的混合代码.
最后代码编译之后产生Libgui.a库文件.
几个文件说明
Tclmain.c IDE的入口,包含了初始化
paths.c 用于寻找IDE以及TCL库路径
tclcursor.c 计算光标大小
tclgetdir.c 浏览目录
tclhelp.c 帮助信息
tclmsgbox.c windows MessageBox函数的处理
tclshellexe.c windows ShellExecute函数的处理
tclwingrab.c 使能或者禁止窗口
tclwinmode.c SetErrorMode的处理
主要流程
Tclmain.c
做了环境的初始化
1.调用Tcl_FindExecutable把当前程序名传递给tcl环境
2.调用Tcl_CreateInterp创建解析器.
3.通过Tcl_Merge把程序入参合并为一个TCL list
4.设置一系列TCL 环境变量,其中把tcl_interactive设为1,启动console模式
5.调用(*appInitProc) (interp)初始化
6.如果初始化失败,那么调用Tcl_GetVar得到错误信息,用MessageBox或者控制台上显示出来.
7.删除解析器,退出
1.怎么把C的函数注册为一个TCL命令?







