2

是否有可能让 C++ dll 调用 Python 脚本,同时在最初创建 python 实例的 C++ dll 中有一个 python 脚本调用函数?

我可以使用什么库?如果没有,是否有任何最佳实践?使用共享内存进行通信是最好的还是我应该使用某种能够处理事情的服务?

我的目标平台是 Windows

4

1 回答 1

2

您可以使用该ctypes模块在 Python 中使用用 C/C++ 编写的外部库。请注意,尽管 C++ 会破坏函数名称,并且 ctypes 只能使用已声明的函数extern "C"!(参见例如这个问题

要从 C++ 调用 Python 脚本,您有两种选择:

  • 使用脚本名称作为参数启动一个新的 Python 进程。在 Windows 上,您可以例如为此使用CreateProcess 。
  • 正如 Janne Karila 提到的,在 C++ 应用程序中嵌入Python。

请注意,这些事情与程序之间的通信没有太大关系。

图书馆并没有真正沟通,因为它不是一个过程。它只是提供功能和数据供进程使用

您可以从另一个进程启动一个进程,而无需它们之间进行任何通信。

要在进程之间进行通信,请使用进程间通信。此处列出了在 Windows 上执行此操作的不同方法。

于 2013-04-03T16:27:35.683 回答