2012-10-05 36 views
1

我有一個用tcl編寫的腳本,用於加載一個dll文件。我想在python中加載這個文件。我不知道如果dll文件是用tcl編寫的,但是因爲tcl文件導入它,我認爲它是用tcl編寫的。我試圖使用WinDLL(「path_to_dll」),但我得到沒有提供名稱的模塊。如何從Python加載一個用tcl編寫的dll文件

回答

2

最簡單的方法是在Python進程中使用Tkinter包及其內置的Tcl解釋器。

如果它是一個Tcl擴展dll,那麼沒有太多的設置首先從Python調用它是沒有意義的。

1

Python和Tcl具有完全不同的C API;根本沒有理由期望爲其中一個編寫的二進制庫可以與另一個編譯器一起工作。編寫一個庫可以使用它加載到的任何庫的API - 從Tcl的角度來看,這將涉及到與Tcl存根庫的鏈接,這樣就沒有討厭的硬綁定到API - 但是我不'不知道如何在Python的方面做到這一點,它試圖做的事情絕對是非常棘手的事情。更實際的做法是讓一個庫包含一個獨立於語言的實現,然後再將另外兩個API綁定到特定語言(綁定層甚至可以使用像SWIG這樣的工具自動生成,儘管這不能解決語言阻抗問題問題)。

當然,如果您只是想從一種語言編寫庫並從另一種語言中使用庫,那麼可以這樣做。畢竟,一個庫只是磁盤上的字節。通常,讓專業工具(編譯器,鏈接器)看起來更容易;但是,圖書館的數據格式並不是最簡單的事情!