0

我在这里有函数原型:

extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);

我需要编写一些 python 来访问 DLL 中的这个函数。我已经加载了 DLL,但每个 double* 实际上都指向可变数量的双精度数(一个数组),我无法让它正常工作。

谢谢大家!

4

2 回答 2

1

我没有过多地研究 ctypes,但尝试使用正确类型的 numpy 数组。如果这不只是自动工作,它们还有一个 ctypes 属性,应该包含一个指向数据的指针。

于 2009-09-04T19:12:23.083 回答
1

要制作一个带有双精度数的数组n

arr7 = ctypes.c_double * `n` 
x = arr7()

并传递x给你想要的函数double*。或者,如果您需要在x制作时进行初始化:

x = arr7(i*0.1 for i in xrange(7))

之类的。你可以循环x,索引它,等等。

于 2009-09-04T20:51:20.873 回答