我正在为一些 c 函数编写 swig 绑定。这些函数之一需要一个浮点数**。我已经在使用了指针.i http://www.swig.org/Doc1.3/Library.html#Library_nn4对于正常的指针并进行了研究卡瑞斯.i http://www.swig.org/Doc1.3/Library.html#Library_carrays,但我没有找到声明浮点数**的方法。你有什么建议吗?
接口文件:
extern int read_data(const char
*文件,int *n_,int *m_,浮点**数据_,int **类_);
这个答案是对 Framester 发布的有关使用 ctypes 而不是 swig 的相关问题的转发。我已将其包含在此处,以防任何网络搜索出现指向他原始问题的链接。
我在几个项目中使用了 ctypes
现在并且对
结果。我不认为我个人
需要一个指针到指针的包装器
但是,从理论上讲,你应该能够
执行以下操作:
from ctypes import *
your_dll = cdll.LoadLibrary("your_dll.dll")
PFloat = POINTER(c_float)
PInt = POINTER(c_int)
p_data = PFloat()
p_classes = PInt()
buff = create_string_buffer(1024)
n1 = c_int( 0 )
n2 = c_int( 0 )
ret = your_dll.read_data( buff, byref(n1), byref(n2), byref(p_data), byref(p_classes) )
print('Data: ', p_data.contents)
print('Classes: ', p_classes.contents)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)