2012-04-04 13 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

相關問題