gpt4 book ai didi

c++ - TCL 库从 C++ 函数返回一个字符串

转载 作者:太空狗 更新时间:2023-10-29 21:42:01 24 4
gpt4 key购买 nike

我有以下代码

int redirect_test(ClientData pClientData, Tcl_Interp *pInterp, int argc, char *argv[])
{
std::string result_str = "This is the output from the method";
Tcl_SetObjResult(pInterp, Tcl_NewStringObj(result_str.c_str(), -1));
return true;
}

但是,当我尝试以下列方式使用此方法时

% set m [ redirect_test]
This is the output from the method
% puts $m
can't read "m": no such variable

如何从 TCL 函数返回值?

最佳答案

问题是你的:

return true;

Tcl 命令实现通过返回 C 常量 TCL_OK (= 0) 指示成功,并通过 TCL_ERROR (= 1) 指示错误。 (还有其他定义的结果代码,但如果您不确定它们的含义,建议您不要使用它们。) true 被转换为 1 C++ boolint 转换运算符,即 TCL_ERROR,使命令失败(然后您的结果字符串就是错误消息)。

修复是微不足道的。改用这个:

return TCL_OK;

关于c++ - TCL 库从 C++ 函数返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27432051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com