是否有可能让C ++ dll调用Python脚本,同时在C ++ dll中创建python实例的python脚本调用函数?
我可以使用哪个库?如果没有,是否有最佳实践?最好是使用共享内存进行通信,还是应该使用某种能够执行某些操作的服务?
我的目标平台是Windows
答案 0 :(得分:2)
您可以使用ctypes
模块在Python中使用用C / C ++编写的外部库。请注意,C ++ mangles函数名称和ctypes只能使用声明为extern "C"
的函数! (参见例如this question)
要从C ++调用Python脚本,您有两个选择:
请注意,这些内容与程序之间的通信没有多大关系。
库并不真正进行通信,因为它不是一个进程。它只为使用的进程提供功能和数据。
您可以从另一个流程开始流程,而无需在它们之间进行任何通信。
要在进程之间进行通信,请使用进程间通信。在Windows上执行此操作的不同方法列在here。