python教程—如何使用C类型的c++类?-Python实用宝典

python教程—如何使用C类型的c++类?

我刚刚开始使用ctypes,希望使用c++类,我已经从python中使用ctypes导出了一个dll文件。 假设我的c++代码是这样的:

我刚刚开始使用ctypes,希望使用c++类,我已经从python中使用ctypes导出了一个dll文件。
假设我的c++代码是这样的:

class MyClass {
  public:
    int test();
...

我知道创建一个包含该类的.dll文件,然后使用ctypes在python中加载.dll文件。
现在我如何创建一个MyClass类型的对象并调用它的测试函数呢?这在c类型中可能吗?或者,我会考虑使用SWIG或Boost。但是对于小型项目来说,c类型似乎是最简单的选择。

回答

简而言之,c++不像C那样有标准的二进制接口,不同的编译器为相同的c++动态输出不同的二进制文件,这是由于名称混乱和函数调用之间处理堆栈的方法不同造成的。

因此,不幸的是,实际上没有一种可移植的方法来访问c++一般。但是,对于一个编译器一次,这没有问题。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论