2013-08-27 30 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++编写插件。社区支持也是需要考虑的事情。你可能不想成为这个体系结构中唯一的一个。