2013-08-27 32 views
0

主機程序支持C++插件。 C++的dll寫成它的插件。插件將在啓動時由主機程序初始化。
有沒有任何方法可以使用Python附加到主機初始化後的之後的C++ dll
因爲它是一種熟悉的語言,所以它的目的是將所有繁重的工作卸載到Python上。
Python通過主機程序初始化後連接到C++ dll?

基於我的搜索,有ctypes,可以ctypes實現嗎?或者我必須在C++ dll中嵌入python解釋器?

+0

連接到C++的DLL你會像任何其他應用程序,IPC ...... TCP,本地共享內存,管道等...... – g19fanatic

+0

有沒有辦法將C++ dll暴露給Python,所以最小的通信開銷?我猜'連接'太泛泛。 –

+0

'ctypes'允許Python加載DLL並調用函數。如果目標是在Python中實現大部分插件功能,那麼可以在插件中嵌入一個python解釋器,或通過IPC與外部解釋器通信。 –

回答

0

您可以創建一個C++插件,然後使用boost::python將功能委託給您的Python代碼(嵌入在插件或文件系統中)。但是你將不得不編寫大量的C++代碼。這不是一種簡單的調試方式。您必須將C++連接到Python內存管理與您的插件體系結構所使用的內存管理之間。

不妨咬緊牙關,用C++編寫插件。社區支持也是需要考慮的事情。你可能不想成爲這個體系結構中唯一的一個。