如何用ctypes包装这个带有多个参数的C函数?

2024-03-28 19:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有一个功能原型:

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

我需要编写一些python来访问DLL中的函数。 我已经加载了DLL,但是 每个double*实际上都指向一个可变数量的double(数组),并且 我很难让它正常工作。在

谢谢大家!在


Tags: 函数功能数量extern数组原型指向dll
2条回答

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

要使用n双精度数组,请执行以下操作:

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

并将x传递给需要double*的函数。或者,如果您需要初始化x,请执行以下操作:

^{pr2}$

诸如此类。您可以循环x,索引它,等等。在

相关问题 更多 >