初学 ctypes,试了一段代码
from ctypes import *
import win32con
k32 = windll.kernel32
size = 20
sa = k32.LocalAlloc(win32con.LMEM_FIXED, size)
if sa == 0:
print("Memory Alloc Failed")
else:
print("sa: {}".format(hex(sa)))
发现这段代码在 python2 中申请的地址都是 c_int32 型,而在 python3 申请的内存地址都是 c_int64 型,有时候还会有 ffff 开头的地址
python2 版本为 Python 2.7.16 [MSC v.1500 64 bit (AMD64)] on win32
python3 版本为 Python 3.7.5 [MSC v.1916 64 bit (AMD64)] on win32
想问一下这是由什么原因导致的,有没有什么解决办法?
from ctypes import *
import win32con
k32 = windll.kernel32
size = 20
sa = k32.LocalAlloc(win32con.LMEM_FIXED, size)
if sa == 0:
print("Memory Alloc Failed")
else:
print("sa: {}".format(hex(sa)))
发现这段代码在 python2 中申请的地址都是 c_int32 型,而在 python3 申请的内存地址都是 c_int64 型,有时候还会有 ffff 开头的地址
python2 版本为 Python 2.7.16 [MSC v.1500 64 bit (AMD64)] on win32
python3 版本为 Python 3.7.5 [MSC v.1916 64 bit (AMD64)] on win32
想问一下这是由什么原因导致的,有没有什么解决办法?