我如何把这个包的C函数,使用多个参数,与ctypes的?(How do I wrap this C

2019-11-01 06:48发布

我有函数原型在这里:

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

我需要写一些Python来访问该功能是在DLL中。 我已经加载DLL,但每双*实际上是指向双打可变数目(数组),而且我遇到了麻烦才能正常工作。

谢谢大家!

Answer 1:

为了与,比如说,一个数组n双打:

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

并通过x到您的函数,其中就是了double* 。 或者,如果你需要初始化x为你做它:

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

等等。 您可以通过环x ,指数的,等等。



Answer 2:

我还没有ctypes的看了太多,但尝试使用正确类型的numpy的阵列。 如果只是自动不起作用,他们也有应包含一个指向数据的ctypes的属性。



文章来源: How do I wrap this C function, with multiple arguments, with ctypes?