我需要从DLL中传递一个64位整数到函数中,但是本机Python int类型为12字节(sys.getsizeof(1)返回12),我收到错误“ValueError:Procedure probably called with too many arguments(4 bytes in excess)”。有没有办法初始化8字节整数或将其转换为8字节整数?
我尝试使用ctypes将参数传递为各种不同的ctype整数,但我无法使其工作: mydll.dllfn(c_int(1)),mydll.dllfn(c_int64(1)),mydll.dllfn(c_long(1))等。
我想避免使用gmpy,因为我正在运行的平台目前未得到gmpy的维护或支持。
我尝试使用ctypes将参数传递为各种不同的ctype整数,但我无法使其工作: mydll.dllfn(c_int(1)),mydll.dllfn(c_int64(1)),mydll.dllfn(c_long(1))等。
我想避免使用gmpy,因为我正在运行的平台目前未得到gmpy的维护或支持。
ctypes
有int64
、long long
和uint64
类型... - Sam Mason