我在这里有函数原型:
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要编写一些python来访问DLL中的这个函数。 我加载了DLL,但是 每个double *实际上指向可变数量的双精度数(一个数组),和 我无法让它正常运行。
全部谢谢!
答案 0 :(得分:1)
我没有太多关注ctypes,但尝试使用正确类型的numpy数组。如果这不仅仅是自动工作,它们还有一个ctypes属性,该属性应包含指向数据的指针。
答案 1 :(得分:1)
使用n
双打来制作数组:
arr7 = ctypes.c_double * `n`
x = arr7()
并将x
传递给您想要double*
的函数。或者,如果您需要初始化x
:
x = arr7(i*0.1 for i in xrange(7))
之类的。您可以遍历x
,对其进行索引,依此类推。