我有一个用 C++ 编写的 DLL(可以用 C 重写)和 python 代码,我用
cdll.LoadLibrary()
导入 DLL。然后我从 DLL 中指定一个函数及其参数类型。然后我调用 function
,它会返回 double *
。指针指向堆中某处分配的内存 - function
进行一些数学运算并将结果存储在 3500 x 8 数组中(我使用 new[] 分配内存,并且不在 DLL 函数中释放它。我应该使用它带有 C++ 代码的 DLL,这样我就可以释放其中某处的内存)。
问题是。有没有办法可以从 DLL 接收
double *
并使用指针指向的数组?据我所知,python没有指针的实现。谢谢!
附注据我所知,Python 中 DLL 函数的默认返回类型是 int。那么我可以使用它的 int 地址来处理 3500 x 8 数据吗?
你应该尝试一下
dll.your_function.restype = ctypes.POINTER(ctypes.c_double)