Python2 调用 so 文件时,如何传递 C++ std::string& json 和 int* 类型 的参数

2022-12-20 16:56:07 +08:00
 Lighthughjiajin

Python 调用 C++ 编译好的 .so 文件,如何传递 C++ 里声明的 std::string& json 和 int* 类型的参数。

3222 次点击
所在节点    Python
8 条回复
leonshaw
2022-12-20 16:57:27 +08:00
接口用 C 封装
Lighthughjiajin
2022-12-20 18:22:14 +08:00
SO 文件是别人提供的,不是我自己写的 。
ysc3839
2022-12-20 18:27:57 +08:00
@Lighthughjiajin 你还可以写一个 so 再封装一些
ysc3839
2022-12-20 18:28:13 +08:00
@ysc3839 再封装一下
junmoxiao
2022-12-20 18:40:12 +08:00
别说用 py 调 c++写的动态库了,你用不同编译器版本的 c++调 c++写的动态库都可能出问题。因为在不同的版本,标准库组件的实现、内存布局可能发生了改变。
接口最好还是用 c
elechi
2022-12-21 16:09:37 +08:00
C++ 相互之间调用都不推荐用 std 库的类型,因为不同版本的 std 实现都是有差异的。。。
NoAnyLove
2022-12-22 09:30:47 +08:00
没有 extern "C"吗?要不试试 cython 或者 cppyy ?
newmlp
2022-12-22 17:18:49 +08:00
建议直接 char*,传对象是不可能的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/903761

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX