2010-10-06 5 views
1

J'essaie d'enregistrer un pointeur void * (ou n'importe quel pointeur) dans un objet tcl afin de pouvoir le récupérer plus tard. J'ai vu SWIG le convertir en une chaîne avec un peu d'encodage et plus tard le décoder. Mais afin de le rendre plus efficace, je veux directement obtenir le pointeur dans et hors de l'obj tcl. Quelque chose comme un Tcl_GetPointerFromObj(). Y a-t-il un moyen de le faire? Dois-je creuser dans la structure Tcl_Obj et faire un sale boulot?Comment placer un pointeur void * dans un objet TCL

Répondre

0

Vous pouvez utiliser l'API Tcl: Tcl_GetWideIntFromObj(), mais je pense que le stockage des pointeurs dans Tcl est la première étape vers la folie ....

+0

Pour utiliser un gros int semble trop dangereux, je ne vais pas le risquer ... Je veux avoir à la fois la flexibilité et la vitesse, c'est la seule façon. – CyberSnoopy

1

Vous pouvez utiliser Tcl_RegisterObjType pour créer un nouveau type d'objet Tcl qui contient un pointeur vide. Cela vous permet d'étendre Tcl afin que Tcl_ObjType puisse être utilisé pour stocker (dans votre cas) void * et pour pouvoir écrire Tcl_GetPointerfromObj.

Questions connexes