如何将void *指针包装到TCL对象中

时间:2010-10-06 23:22:24

标签: c tcl

我正在尝试将void *指针(或任何指针)保存到tcl对象中,以便稍后检索它。我看到SWIG将其转换为带有一些编码的字符串,然后对其进行解码。但是为了提高效率,我想直接将指针输入和输出tcl obj。像Tcl_GetPointerFromObj()之类的东西。无论如何要做到这一点?我是否需要深入研究Tcl_Obj结构并做一些肮脏的工作?

3 个答案:

答案 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中存储指针是迈向疯狂的第一步......