2012-04-04 51 views

回答

0

我怀疑你不能在那个时候(你是否尝试过看它是否有效?),但是你可以做一些事情。 (仅做他们中的一个,当然。)

  1. 编辑所生成的代码(SWIG写入C++ - Tcl的绑定代码被然后被编译),使得串"new_Cell""create_cell"。我认为你应该能够在参数中找到改变位置的地方,例如Tcl_CreateCommand或Tcl_CreateObjCommand,但也可能在宏中,这取决于代码生成的完成方式。 (我从来没有真正看过。)
  2. 使用load将代码获取到Tcl中,然后rename之后的命令。名字并不固定。 load可能在执行package require的调用中;只是做你通常会做的就是代码错误的名称的工作,然后再做到这一点:

    rename new_Cell create_cell 
    
  3. 添加一个包装命令或程序;他们都会让你做的事:

    proc create_cell args { 
        eval new_Cell $args 
    } 
    
    # With 8.5 or later 
    proc create_cell args { 
        new_Cell {*}$args 
    } 
    
    # With 8.6 
    proc create_cell args { 
        tailcall new_Cell {*}$args 
    } 
    
    # Or do this; not a procedure, an alias 
    interp alias {} create_cell {} new_Cell 
    
+0

如果您使用的包装或别名,你也可以使用'rename'对包装'new_Cell'移动到另一个Tcl命名空间,它不会干扰你所看到的东西。纯粹的化妆品,但方便。 (我自己,我会包装一切,因为我不太喜欢SWIG生成的界面风格; Tcl _isn't_ C++和它的API有它自己的味道。) – 2012-04-04 07:07:32

+0

谢谢Donal,我想我会重命名proc是TCL 。这似乎是最简单的事情。 – 2012-04-04 15:39:34

相关问题