大胖的部落格

Just a note

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks

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

posted on 2009-05-13 15:49 大胖 阅读(3222) 评论(3)  编辑 收藏 引用 所属分类: Others

评论

# re: 在TCL命令行中调用C函数 2009-11-25 13:32 1232
谢谢!  回复  更多评论
  

# re: 在TCL命令行中调用C函数 2014-06-16 17:08 Kenny
請問如何溝通array 變數
Q:1
tcl array in C
Q:2
C array in tcl
懇求指導  回复  更多评论
  

# re: 在TCL命令行中调用C函数 2014-12-23 16:16 大胖
@Kenny
实在不好意思,时间太过久远,本人已好久没有接触TCL……  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理