2011-07-12 79 views
0

我想在python中使用OpcDaNet.dll,我使用的是ctypes,但爲了能夠使用我在其中輸入的函數,我必須創建一個OpcServer對象的實例,我該如何才能用Ctypes做那個?python中的ctypes lib

感謝您answres

+0

寫入的DLL是什麼語言? C? C++? C沒有對象實例化,如果我沒有弄錯,'ctypes'也不會很好。 – JAB

回答

1

爲了使用C++的概念,如您需要需要做一個C接口使用的是類對象和類ctypes的。這在第二個答案here中得到證明。如果您無法訪問要調用的外部庫的源代碼,則可以嘗試自己在包裝OpcDaNet.dll的地方編寫一個快速庫。如果需要庫中許多不同的函數,這可能非常繁瑣,但不幸的是,由於C++處理名稱修改的方式,CTypes與C++基本上是不兼容的。

1

實際上,如果您使用模式ctype,則無法創建OpcServer對象的實例。因爲C不是面向對象的語言。如果使用C++創建.dll文件,則應該創建一個C接口,在extern "C"這樣的程序中,如果你在這個.dll文件中返回一個對象,python的函數不能接收這個對象。如果我沒有弄錯。如果你真的想在dll文件中返回一個對象,也許你可以使用boost.python來開發dll文件。