有没有办法确定在MS Visual Studio 2005(C ++)中构建的dll是在调试中编译还是在发布中使用python 发布?
我知道VS能够加载dll并向您显示某些元数据存储此信息的清单。任何python模块都能够做到吗?
另一个选择是识别这个dll对其他dll的依赖关系,并寻找仅调试的那些例如:msvcr80 D .dll,如果可能的话。
答案 0 :(得分:2)
Pefile可以帮助您解析PE可执行文件。您可以在项目页面上找到一些用法examples。
关于问题的第二部分,您可以执行类似这样的操作来检索dll依赖项的列表(取自示例):
import pefile
path_to_dll = r"path_to_your_dll"
pe = pefile.PE(path_to_dll, fast_load=True)
# If the PE file was loaded using the fast_load=True argument, we will need to parse the data directories:
pe.parse_data_directories()
for entry in pe.DIRECTORY_ENTRY_IMPORT:
print entry.dll
在我的情况下,我得到以下输出: KERNEL32.dll中, MSVCP80D.dll, 的 MSVCR80D.dll 下, ADVAPI32.dll中。