如何使用位于DLL中的C函数填充numpy数组?

时间:2017-11-27 11:04:50

标签: python numpy dll ctypes

我有一个用C编写的DLL:

void fill(int* a) {
    a[0] = 2;
    a[1] = 3;
    a[2] = 5;
}

我想要做的是创建一个包含写入a的数字的numpy数组。

我试过了:

import ctypes

_dll = ctypes.CDLL("mydll.so")

type_ = np.int32

bf = ctypes.create_string_buffer(3 * np.dtype(type_).itemsize)
_dll.fill(bf)
a = np.frombuffer(bf.value, dtype=type_)

print(a)

它给出错误:

    a = np.frombuffer(bf.value, dtype=type_)
ValueError: buffer size must be a multiple of element size

我的python代码出了什么问题?

0 个答案:

没有答案