我正在用C++扩展TCL,我的理解是,当命令即将被删除时,会在创建命令时指定Tcl_CmdDeleteProc。但是只有客户端数据在被调用时被提供给Tcl_CmdDeleteProc。我想知道在Tcl_CmdDeleteProc中要销毁的命令的名称,这可能吗?TCL获取要删除的命令的名称
0
A
回答
0
这是可能的,但你必须有点棘手。
如果你在一个命令的删除回调中,这很大程度上意味着你必须首先创建它(这对于其他人创建的命令插入删除回调是非常糟糕的形式),这意味着clientData
确实可以是指向您控制的结构的指针。如果将Tcl_Command
标记(在创建命令时获得的标记)放入结构的某处,可以在删除该命令时使用该标记,并使用Tcl_GetCommandName
或Tcl_GetCommandFullName
获取命令的当前名称。 (删除回调在命令仍然有一个名称时,BTW。)
要非常小心!删除回调在命令实际上只是部分存在的时候被调用;如果您不小心,可能会触发崩溃。你可能不应该从回调中调用命令,或者重命名它,或者删除它。在命令上设置跟踪可能会更好,以便您知道名称更改的通知。 (这也是一种机制,可用于查找名称更改和您不控制的命令的删除。)这是因为这些跟踪稍早发生,但仍然在命令被标记为死亡时。
相关问题
- 1. 的Tcl:命令名称创建
- 2. Tcl错误无效命令名:无效的命令名称” 0.27722296"
- 3. Unix命令删除重复名称
- 4. 从命令行获取TCL的版本?
- 5. 使用tcl interp别名重命名内置命令的tcl
- 6. 获取已删除图像的名称
- 7. 的Tcl:无效的命令名称错误
- 8. 无法在TCL中调用proc无效的命令名称
- 9. 在tcl的foreach命令读取文件
- 10. TCL clock命令
- 11. Android删除当前片段并获取删除片段名称
- 12. 如何获取符号链接的名称?一个命令的
- 13. ANTLR:获取令牌名称?
- 14. 只需要一个sed命令来从短名称中删除点
- 15. 无效的命令名称“”
- 16. 使用find命令删除给定名称的所有文件,除了给定名称的文件
- 17. 命令从其部件名称中删除文件夹。
- 18. 获取Word中菜单项的宏命令名称
- 19. 如何使用cURL命令获取网页的链接名称
- 20. linux ftp命令行获取具体名称的文件
- 21. 在单元格中获取命令按钮的名称/ ID
- 22. Salesforce:使用命令行中的Data Loader从ParentId获取名称
- 23. mercurial:任何获取存储库名称的命令或python api
- 24. 通过Tcl预期获取命令的输出
- 25. TCL获取类型为-nohang选项的命令?
- 26. 如何获取TCL exec命令的结果(标准输出)?
- 27. 获取的TCL
- 28. 取消删除在bash中删除的命令
- 29. TCL获取我所在的过程名称
- 30. TCL的regexp名称验证