如何计算应采用C+中的Tcl#u Obj的Tcl表达式+; 在C++代码中,我有一个(SWIG生成的)代码> TCLUBOB**/CODE >和一个字符串,表示一个简单的TCL表达式,如:。这看起来很傻,但我是Tcl的新手,我不知道如何将这两件事结合起来,调用Tcl解释器,用我的Tcl\u Obj*计算表达式: double eval(Tcl_Interp *interp, Tcl_Obj *obj, const char * cmd) { //substiture obj in cmd and call the interpreter? return Tcl_GetResult(interp); //with proper checks and so on... }

如何计算应采用C+中的Tcl#u Obj的Tcl表达式+; 在C++代码中,我有一个(SWIG生成的)代码> TCLUBOB**/CODE >和一个字符串,表示一个简单的TCL表达式,如:。这看起来很傻,但我是Tcl的新手,我不知道如何将这两件事结合起来,调用Tcl解释器,用我的Tcl\u Obj*计算表达式: double eval(Tcl_Interp *interp, Tcl_Obj *obj, const char * cmd) { //substiture obj in cmd and call the interpreter? return Tcl_GetResult(interp); //with proper checks and so on... },c++,tcl,C++,Tcl,我是否错过了执行此操作的正确命令?非常感谢 你从某个地方得到了一个Tcl\u Obj*,你想把它作为一个表达式进行计算,得到一个双结果?使用 Tcl_Obj*表达式bj=…;//好吧,也许是一场争论。。。 双重结果价值; int-resultCode; //评估Tcl_Obj时需要增加其引用计数 //无论是作为Tcl脚本还是作为Tcl表达式 Tcl_IncrRefCount(表达式bj); 结果代码=Tcl_exprllongObj(interp、expressionObj和resultValu

我是否错过了执行此操作的正确命令?非常感谢

你从某个地方得到了一个
Tcl\u Obj*
,你想把它作为一个表达式进行计算,得到一个
结果?使用

Tcl_Obj*表达式bj=…;//好吧,也许是一场争论。。。
双重结果价值;
int-resultCode;
//评估Tcl_Obj时需要增加其引用计数
//无论是作为Tcl脚本还是作为Tcl表达式
Tcl_IncrRefCount(表达式bj);
结果代码=Tcl_exprllongObj(interp、expressionObj和resultValue);
//删除引用_可以解除分配,也可以不解除分配,但你不应该这样做
//必须小心(但不要在这之后使用ExpressionBJ,好吗?)
Tcl_decrefcount(表达式bj);
//需要在此处检查错误
if(resultCode!=TCL\u确定){
//哦,不!

CURR需要使用<代码> TCLSIVALV2或类似的东西来设置变量。“VaughnCato非常感谢!这看起来是一种方法,不太好:<代码> TCLUBOR**/CODE >包含一个对象(C++),在一个字符串中,我有一个Tcl命令,它应该调用对象的方法,并最终返回一个double。我想我首先必须用
Tcl\u SetVar2Ex
向解释器传授对象,然后我可以评估该命令……但是非常感谢
Tcl\u ExprDouble
:这看起来比
Tcl\u Eval
+
Tcl\u GetStringResult
+str2我正在使用的双重转换!