我有函数原型这里:如何使用ctypes包装这个具有多个参数的C函数?
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要写一些Python来访问该功能是在DLL中。 我已经加载了DLL,但是 每个double *实际上都指向了一个可变数量的double(一个数组),并且 我很难让它正常工作。
谢谢大家!
我有函数原型这里:如何使用ctypes包装这个具有多个参数的C函数?
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要写一些Python来访问该功能是在DLL中。 我已经加载了DLL,但是 每个double *实际上都指向了一个可变数量的double(一个数组),并且 我很难让它正常工作。
谢谢大家!
为了与,比如说,n
双打的数组:
arr7 = ctypes.c_double * `n`
x = arr7()
,并通过x
到您的函数,其中就是了double*
。或者,如果你需要初始化x
因为你把它:
x = arr7(i*0.1 for i in xrange(7))
等。您可以循环使用x
,对其进行索引,依此类推。
我还没有看过ctypes太多,但尝试使用正确类型的numpy数组。如果这不仅仅是自动工作,它们还有一个ctypes属性,该属性应该包含一个指向数据的指针。
太棒了!谢谢! – trayres 2009-09-04 22:42:40
不客气,如果这个答案被证明是解决您的问题的方法,请记住接受它(使用放弃/拒绝答案的号码下的复选标记图标作为答案),这是基本的SO礼仪。 – 2009-09-05 00:49:40
啊,再次感谢你! – trayres 2009-09-08 22:52:37