Как обернуть указатель void * в объект TCL - PullRequest
1 голос
/ 07 октября 2010

Я пытаюсь сохранить указатель void * (или любой указатель) в объект tcl, чтобы я мог получить его позже. Я видел, как SWIG преобразовал это в строку с некоторой кодировкой и позже расшифровал это. Но чтобы сделать его более эффективным, я хочу напрямую получить указатель в tcl obj и из него. Что-то вроде Tcl_GetPointerFromObj (). Есть ли способ сделать это? Нужно ли копаться в структуре Tcl_Obj и выполнять грязную работу?

Ответы [ 3 ]

3 голосов
/ 07 октября 2010

Я предлагаю прочитать эту страницу в вики Tcler , которая находится по теме.

1 голос
/ 07 октября 2010

Вы можете использовать Tcl_RegisterObjType для создания нового типа объекта Tcl, который содержит пустой указатель.Это позволяет вам расширить Tcl, чтобы Tcl_ObjType можно было использовать для хранения (в вашем случае) void * и для возможности записи Tcl_GetPointerfromObj.

0 голосов
/ 07 октября 2010

Вы можете использовать Tcl API: Tcl_GetWideIntFromObj(), хотя я думаю, что хранение указателей в Tcl - это первый шаг к безумию ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...