Python DLL文件句柄更改
我一直在使用PythonCtypes库(在Windows7的cygwin中)调用一个用c编写并构建在cygwin上的dll。 最近,dll的制作者发布了一个更新,现在每当我调用ctypes.CDLL时,文件句柄都会改变,以前的版本每次都使用相同的句柄 我的问题是:在dll的构建过程中,与每次使用一个新的文件句柄相比,有什么不同之处会导致每次使用一致的文件句柄Python DLL文件句柄更改,python,dll,ctypes,libraries,Python,Dll,Ctypes,Libraries,我一直在使用PythonCtypes库(在Windows7的cygwin中)调用一个用c编写并构建在cygwin上的dll。 最近,dll的制作者发布了一个更新,现在每当我调用ctypes.CDLL时,文件句柄都会改变,以前的版本每次都使用相同的句柄 我的问题是:在dll的构建过程中,与每次使用一个新的文件句柄相比,有什么不同之处会导致每次使用一致的文件句柄 谢谢 句柄只是加载DLL的虚拟基址。如果启用了诸如(地址空间布局随机化)之类的功能,则DLL可以在随机化地址处加载 如果ASLR选择的地址
谢谢 句柄只是加载DLL的虚拟基址。如果启用了诸如(地址空间布局随机化)之类的功能,则DLL可以在随机化地址处加载
如果ASLR选择的地址已经被占用,加载程序可以将其重新定位到它喜欢的任何地方。句柄不只是一个不透明的结构指针吗,应用程序不应该对其值进行假设吗?@ChristiFati当然,但仍然可以询问为什么在Windows上,DLL模块句柄只是它加载的虚拟基址:^)