Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DLL文件句柄更改_Python_Dll_Ctypes_Libraries - Fatal编程技术网

Python DLL文件句柄更改

Python DLL文件句柄更改,python,dll,ctypes,libraries,Python,Dll,Ctypes,Libraries,我一直在使用PythonCtypes库(在Windows7的cygwin中)调用一个用c编写并构建在cygwin上的dll。 最近,dll的制作者发布了一个更新,现在每当我调用ctypes.CDLL时,文件句柄都会改变,以前的版本每次都使用相同的句柄 我的问题是:在dll的构建过程中,与每次使用一个新的文件句柄相比,有什么不同之处会导致每次使用一致的文件句柄 谢谢 句柄只是加载DLL的虚拟基址。如果启用了诸如(地址空间布局随机化)之类的功能,则DLL可以在随机化地址处加载 如果ASLR选择的地址

我一直在使用PythonCtypes库(在Windows7的cygwin中)调用一个用c编写并构建在cygwin上的dll。 最近,dll的制作者发布了一个更新,现在每当我调用ctypes.CDLL时,文件句柄都会改变,以前的版本每次都使用相同的句柄

我的问题是:在dll的构建过程中,与每次使用一个新的文件句柄相比,有什么不同之处会导致每次使用一致的文件句柄


谢谢

句柄只是加载DLL的虚拟基址。如果启用了诸如(地址空间布局随机化)之类的功能,则DLL可以在随机化地址处加载


如果ASLR选择的地址已经被占用,加载程序可以将其重新定位到它喜欢的任何地方。

句柄不只是一个不透明的结构指针吗,应用程序不应该对其值进行假设吗?@ChristiFati当然,但仍然可以询问为什么在Windows上,DLL模块句柄只是它加载的虚拟基址:^)