2013-06-26 28 views
0

我使用的是名爲Simple Agent Pro的軟件,它主要使用TCL代碼。我想知道任何熟悉TCL或Sapro的人都會友好地告訴我如何將模塊導入到Sapro的.tel文件中。使用Simple Agent Pro在TCL中使用類

當我試試這個:

package require tclOO.h 

程序停止工作。 任何幫助,將不勝感激。

回答

2

我不知道簡單的代理臨可言,但如果你正在做一個「遊擊安裝」 TclOO的,那麼你需要幾件事情:

  • 確保您使用Tcl 8.5(看什麼package require Tcl返回)。
    • 如果您使用的是8.4(注:8.4本月EOLed),TclOO 根本無法工作(且無法回溯)。
    • 如果你使用的是8.6,它已經提供了TclOO包,你不需要大驚小怪。
  • 做一個構建TclOO並將其安裝到您喜歡的位置。
    • 需要Tcl的內部源文件; TclOO明確地將其引入大多數代碼不應該的地方。
    • 您可能不需要8.5的自定義版本;只需要在某個地方完成。 (您可能需要破解的配置腳本一點點。)
  • 添加您安裝TclOO向搜索路徑您的Tcl 8.5程序中的位置

    lappend auto_path /the_dir/you_put/it_in 
    

    如果你使用的是Windows,它可能是最容易使用正斜槓適用於這條道路呢(這是它擊中OS之前一直受到高度保護的目錄名,所以這是確定)。

  • 現在你應該可以要求/使用包裝

    package require TclOO 
    
    oo::class create Foo { 
        # etc. 
    } 
    

    請注意,這種情況下,你究竟如何寫它的問題。你得到的版本至少應該是1.0(早期版本僅用於開發),它與Tcl 8.6中支持的API完全一致(模數由於其他原因需要8.6,比如在方法內能夠使用yield它僅適用於8.6,因爲這是yield第一次被定義的地方)。

+0

lappend完成了這項工作。謝謝 – Strommer

0

你大概的意思

package require TclOO 

案例和其他的東西是非常重要的存在。

下次您還應該包含堆棧跟蹤。如果程序停止工作,它應該顯示爲對話框或標準輸出。

+0

我確實嘗試過..問題在於.tel文件中,因此無法正確調試。最好的,我可以嘗試打印語句,這是不起作用的點 – Strommer

+0

好吧,然後試試這個調試:'proc dbgPkg {cmd code result step} {if {[lindex $ cmd 1] ==「require」 } {puts「\ [$ cmd \]返回\」$ result \「並返回代碼$ code」}};跟蹤添加執行包離開dbgPkg' - 跟蹤是一個非常強大的調試工具。 –