【发布时间】:2012-03-14 13:39:01
【问题描述】:
我正在使用 C++ 作为后端的 ctypes。现在C++中有这样一个函数:
void HandleString(std::string something){
...
}
我想知道如何从 python 调用这个函数 - 没有 ctype(c_char_p 显然不会工作)向这个函数发送一个字符串参数......
我该如何解决这个问题并将字符串从 Python 传递给 c++(并将参数更改为 char* 不是和选项)
PS 我可以创建一个这样的解决方法吗?
- 将 python 字符串作为 c_char_p 发送到将 char* 转换为 std::string 的 C++ 函数
- 以某种方式返回字符串或其指针???!! (如何?)到 python
- 将它从 python 发送到 HandleString 函数(但我又觉得我必须在这里将参数更改为 string*)
【问题讨论】:
-
如果您要解决问题,将您的 c_char_p 发送到将其转换为
std::string然后立即调用HandleString的 C++ 函数不是更有意义吗?事实上,存在从const char*到std::string的隐式转换,因此您的解决方法函数可以只使用指针作为HandleString的参数表达式。不要费心尝试将std::string传回 Python。