ctypes python std :: string

kos*_*ta5 5 c++ python ctypes

我正在使用C ++作为后端使用ctypes。现在在C ++中有一个像这样的函数:

void HandleString(std::string something){

   ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何从python调用此函数-没有ctype(c_char_p显然不能工作)向该函数发送字符串参数...

我如何解决此问题并将字符串从Python传递到c ++(并将参数更改为char *而不是选项)

PS我可以创建这样的解决方法吗?

  1. 将python字符串作为c_char_p发送到C ++函数,该函数将char *转换为std :: string
  2. 以某种方式返回字符串或其指针?(如何?)到python
  3. 将其从python发送到HandleString函数(但再次,我觉得我必须在这里将参数更改为string *)

dar*_*rak 4

听起来最简单的方法是在库周围编写一个精简的 C++ 包装器,其唯一目的是将参数从 Python 重新协商到更复杂的 C++ 类中。

这种方法还有助于解决未来的同类问题,而不会增加 Python 代码或 C++ 代码的任何实际复杂性。