我有一个工作的
python 2.7程序调用一个DLL.我试图将脚本移植到python 3.2. DLL调用似乎工作(即调用时没有错误),但返回的数据没有意义.
以防万一有用:
– 调用有三个参数:两个int(输入)和一个指向ushort数组(输出)的指针.
我尝试使用python和numpy数组没有成功.
有人可以列举Python 2.7和3.2之间的区别,尊重ctypes吗?
提前致谢
编辑
这是一些示例代码.该DLL是proparyary所以我没有代码.但我确实有C标题:
void example (int width,int height,unsigned short* pointer)
python代码是:
width,height = 40,100 imagearray = np.zeros((width,height),dtype=np.dtype(np.ushort)) image = np.ascontiguousarray(imagearray) ptrimage = image.ctypes.data_as(ct.POINTER(ct.c_ushort)) DLL.example(width,height,ptrimage)
这在python 2.7中工作,但不在3.2中.
编辑2
如果ctypes的更改只是Cedric指出的那样,那么python 3.2将无法正常工作.所以再看看代码,我发现有一个准备函数调用之前的功能,我提到.签名是:
void prepare(char *table)
在python中,我呼吁:
table = str(aNumber) DLL.prepare(table)
是否可能的问题是由于Python字符串处理的变化?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。