1、要包含tcl.h头文件。
2、这里链接了静态库"tcl84.lib",也可以连接动态库"tcl84.dll",若链接动态库,需要手动导出函数Tcl_CreateCommand。
代码如下:
#include "C:\Tcl\include\tcl.h"

#pragma comment(lib,"C:\\Tcl\\lib\\tcl84")



/**//**//**//*******自己的函数*******/
void MyFunc1()


{
printf("My function 1\n");
}

void MyFunc2()


{
printf("My function 2\n");
}


/**//**//**//*******在这些函数里调用我们自己的函数*******/
int TclCmdProc1(ClientData clientData, Tcl_Interp *interp, int objc, char* CONST * objv)


{
MyFunc1();
return TCL_OK;
}

int TclCmdProc2(ClientData clientData, Tcl_Interp *interp, int objc, char* CONST * objv)


{
MyFunc2();
return TCL_OK;
}

//这里将命令与函数绑定
int Test_Init(Tcl_Interp *interp)


{
//将第一个函数与命令"f1"绑定
Tcl_CreateCommand(interp,"f1",(Tcl_CmdProc*)TclCmdProc1,(ClientData)NULL,(Tcl_CmdDeleteProc *) NULL);
//将第二个函数与命令"f2"绑定
Tcl_CreateCommand(interp,"f2",(Tcl_CmdProc*)TclCmdProc2,(ClientData)NULL,(Tcl_CmdDeleteProc *) NULL);

return TCL_OK;
}

//main
int main(int argc, char *argv[])


{
//启动TCL命令行
Tcl_Main(argc, argv, Test_Init);

return 0;
}
运行程序后,出现TCL控制台,输入输出如下:
% f1
My function 1
% f2
My function 2
% f1;f2
My function 1
My function 2