c++/c内部调用TCL
来源:互联网 发布:数据挖掘待遇 编辑:程序博客网 时间:2024/06/07 15:57
TCL提供了C语言的调用接口,可以很容易地嵌入到C程序中;由于TCL提供了与C的接口函数,所以可以在C编写的应用中调用TCL的库函数,执行TCL的命令或脚本。具体的工作有:
①创建TCL的解释器;
②执行TCL的命令或脚本;
③对返回代码进行处理;
④撤消TCL的解释器。
一、test.c代码
#include <tcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
Tcl_Interp *interp;
int
PowObjCmd(ClientData clientData, Tcl_Interp *interp,
int objc, Tcl_Obj *CONST objv[])
{
Tcl_Obj *resultptr;
double x,y,result;
int error;
if (objc != 3) {
Tcl_WrongNumArgs(interp,2,objv,
"Usage : pow x y");
return TCL_ERROR;
}
error = Tcl_GetDoubleFromObj(interp, objv[1], &x);
if (error != TCL_OK) return error;
error = Tcl_GetDoubleFromObj(interp, objv[2], &y);
if (error != TCL_OK) return error;
result = pow(x,y);
resultptr = Tcl_GetObjResult(interp);
Tcl_SetDoubleObj(resultptr,result);
return TCL_OK;
}
int
Example_Init() {
interp = Tcl_CreateInterp();
if(interp == NULL)
{
return 1;
}
Tcl_CreateObjCommand(interp, "pow", PowObjCmd,
(ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
return TCL_OK;
}
int main()
{
int ret;
Example_Init();
ret = Tcl_EvalFile(interp,"test.tcl");
if(ret == TCL_ERROR)
{
printf("Tcl script error:%s",interp->result);
//DataLog::insertERROR(logdata);
}
printf("ok %d\n",ret);
return 0;
}
二、makefile
t = libtest
TCL_LIBS = -L/usr/lib/libtcl8.5.so
all: $t
clean:
rm -f $t core
libtest: test.c
g++ -I. ${TCL_LIBS} -o $@ test.c -ltcl -ltk -fPIC
三、test.tcl
pow 2 5
- c++/c内部调用TCL
- 关于在TCL中调用C语言
- TCL与c/c++的互相调用
- tcl 与 c/c++ 相互调用
- TCL与c/c++的互相调用
- perl, shell, tcl,c 互相调用
- c(摘自TCL)
- TCL发送ctrl-c
- c++/tcl编程总结
- C++/CLI 调用C# mash_as c1001 编译器内部错误
- c语言内部(汇编代码分析)函数调用过程探究
- C语言-内部函数与外部函数+调用实例
- C 指针指向调用函数内部的零时变量问题
- Tcl/C混合编程:将Tcl嵌入你自己的程序
- TCL/TK 与 C 程序的集成
- TCL/TK 与 C 程序的集成
- TCL/TK 与 C 程序的集成
- TCL/TK 与 C 程序的集成
- 基于OpenCV的摄像头脸部识别抓取及格式储存(Python)
- HAProxy 安装与配置
- 不要沦陷程序员30岁问题
- Java中九大内置对象
- explict关键字的含义
- c++/c内部调用TCL
- String类常用方法
- Shell 学习
- OpenCV视频写入详解_Python,视频保存0kb问题
- 72小时学会任何一款软件
- (解题报告)HDU2022---海选女主角
- Android ORM框架之-ActiveAndroid的简单分析
- Javascript生成GUID
- angularjs 设置全局变量的7种方法