如何通过SWIG生成的Python包装器访问C结构中的浮点指针

时间:2018-09-20 15:17:35

标签: python c swig

我有一个带有float*字段的C结构。它被认为是描绘图像的浮点数组。 C结构是我通过SWIG包装的库的一部分。差不多可以了。我可以导入模块并创建该结构(和其他结构)的实例。

结构看起来像这样:

struct MyStruct {
    int width;
    int height;
    float* data;
};

我想用我的Python代码填充此数组

import Foo

d = Foo.MyStruct()
d.data = numpy.zeros(640*480)

开箱即用。我收到TypeError的说明:

in method 'MyStruct_data_set', argument 2 of type 'float *'

在称为_swig_setattr_nondynamic的SWIG内部方法中

我想我必须对指针做一些事情,以明确它是任意大小的浮点数组。

要使上面的代码正常工作,我应该做什么,应该在模块.i文件中进行?

/ edit:根据要求,.i文件不超过此内容:

%module Foo
%{
#include <Foo.h>
%}

%include Foo.h

相当基本。我对SWIG完全陌生。

0 个答案:

没有答案