我正在尝试将void *指针(或任何指针)保存到tcl对象中,以便稍后检索它。我看到SWIG将其转换为带有一些编码的字符串,然后对其进行解码。但是为了提高效率,我想直接将指针输入和输出tcl obj。像Tcl_GetPointerFromObj()之类的东西。无论如何要做到这一点?我是否需要深入研究Tcl_Obj结构并做一些肮脏的工作?
答案 0 :(得分:3)
我建议阅读有关该主题的this page on the Tcler's Wiki。
答案 1 :(得分:1)
您可以使用Tcl_RegisterObjType创建一个包含void指针的新Tcl对象类型。这允许您扩展Tcl,以便可以使用Tcl_ObjType存储(在您的情况下)void *并且能够写入Tcl_GetPointerfromObj。
答案 2 :(得分:0)
您可以使用Tcl API:Tcl_GetWideIntFromObj()
,但我认为在Tcl中存储指针是迈向疯狂的第一步......