经验教程 ·

在TCL命令行中调用C函数

代码如下:

#include "C:Tclincludetcl.h"
#pragma comment(lib,"C:\Tcl\lib\tcl84")
/**//*******自己的函数*******/
void MyFunc1()
{
    printf("My function 1n");
}
void MyFunc2()
{
    printf("My function 2n");
}
/**//*******在这些函数里调用我们自己的函数*******/
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;
}

 

 

生成DLL后在 TCL中load
TCL控制台,输入输出如下:
% f1
My function 1
% f2
My function 2
% f1;f2
My function 1
My function 2

 

via:http://www.cppblog.com/playerken/archive/2009/11/25/82823.html

参与评论