Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在这里有函数原型:
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要编写一些 python 来访问 DLL 中的这个函数。我已经加载了 DLL,但每个 double* 实际上都指向可变数量的双精度数(一个数组),我无法让它正常工作。
谢谢大家!
我没有过多地研究 ctypes,但尝试使用正确类型的 numpy 数组。如果这不只是自动工作,它们还有一个 ctypes 属性,应该包含一个指向数据的指针。
要制作一个带有双精度数的数组n:
n
arr7 = ctypes.c_double * `n` x = arr7()
并传递x给你想要的函数double*。或者,如果您需要在x制作时进行初始化:
x
double*
x = arr7(i*0.1 for i in xrange(7))
之类的。你可以循环x,索引它,等等。