2010-10-06 60 views
1

我试图将一个void *指针(或任何指针)保存到一个tcl对象中,以便稍后可以检索它。我看到SWIG将它转换为一个具有某种编码的字符串,然后对其进行解码。但为了使其更有效率,我想直接从tcl obj中获取指针。像Tcl_GetPointerFromObj()。无论如何去做?我是否需要深入研究Tcl_Obj结构并做一些肮脏的工作?如何将一个void *指针包装成一个TCL对象

回答

0

您可以使用Tcl的API:Tcl_GetWideIntFromObj(),但我认为存储Tcl的指针是朝着疯狂的第一步....

+0

使用大整数似乎太危险了,我不会冒险...我想兼具灵活性和速度,所以这是唯一的方法。 – CyberSnoopy 2010-10-07 20:49:18

1

您可以使用Tcl_RegisterObjType来创建一个新的Tcl对象类型,它包含一个void指针。这允许你扩展Tcl,以便Tcl_ObjType可以用来存储(在你的情况下)void *并且能够写Tcl_GetPointerfromObj。

相关问题