【问题标题】:How to convert swig object of type 'int *' to ctypes int*如何将 'int *' 类型的 swig 对象转换为 ctypes int*
【发布时间】:2014-01-31 02:31:50
【问题描述】:

我正在使用 Python 处理一些数据(int 数组)。它非常慢。所以我把处理函数放在一个c++ DLL中,通过ctypes与之对话。数据是从 swig 包装的模块 (c++) 加载的。我几乎到处浏览,但没有发现将 'int *' 指针类型的 swig 对象转换为 ctypes int 指针。我该怎么做?

谢谢

【问题讨论】:

  • 在 C 和 C++ 中,指针始终是数字。准确地说,它是一个 intptr_t 类型的数字,一种依赖于平台的类型,别名为整数类型,其大小足以容纳内存地址。那么……为什么不直接通过呢?无论哪种情况,它都是一个数字。
  • 直接传数据地址错误。除了数据数组的开头之外的任何位置。

标签: python c++


【解决方案1】:

经过几次尝试似乎没有解决方案。解决此问题的一种简单方法是使用 SWIG 包装 c++ 代码,因此可以将其传递给其他 SWIG 包装的模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2015-02-12
    相关资源
    最近更新 更多