2010-10-06 88 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。

相關問題