Python调用dll long long类型被截断问题
dll中非常简单,就是返回一个long long类型的值。
然后我们在python代码中对该方法进行调用
打印后发现居然不一致。看上去像是python只去了8位而实际在C++中longlong类型占了16位。
把输出结果换成16进制就可以看出来
140721359441400 对应的是 7FFC 3EA4 4DF8
1050955256 对应的是 3EA4 4DF8
解决方案
在python代码中对该方案的返回值限定,默认是c_long类型,转为c_uint64