我一直在使用python ctypes库(在Windows 7的cygwin中)对用c编写并基于cygwin构建的dll进行调用。 最近,dll的生产者发布了一个更新,现在每次我调用ctypes.CDLL时文件句柄都会更改,旧版本每次都使用相同的句柄。
我的问题是:dll的生成过程中的哪些不同会导致它每次使用一个新文件而不是每次使用一个新文件?
谢谢!
答案 0 :(得分:0)
句柄只是DLL被加载的虚拟基址。如果启用了ASLR(地址空间布局随机化)之类的功能,则DLL可以加载到随机地址。
如果ASLR选择的地址已经被占用,则加载程序可以将其重新放置到喜欢的地方。