在TCL命令行中调用C函数

在TCL命令行中调用C函数

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

你可能感兴趣的:(在TCL命令行中调用C函数)