【问题标题】:Identify whether a dll is built in debug or release with python确定 dll 是内置调试还是使用 python 发布
【发布时间】:2016-02-29 09:08:06
【问题描述】:

有什么方法可以确定 MS Visual Studio 2005 (C++) 中内置的 dll 是在调试中编译还是在发布时编译使用 python

我知道 VS 能够加载 dll 并向您显示一些元数据存储此信息的清单。任何python模块也能做到吗?

另一种选择是识别此 dll 对其他 dll 的依赖关系,并查找仅用于调试的那些,例如:msvcr80D.dll,如果可能的话。

【问题讨论】:

    标签: python c++ dll visual-studio-2005


    【解决方案1】:

    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
    

    就我而言,我得到以下输出: 内核32.dll, MSVCP80D.dll, MSVCR80D.dll, ADVAPI32.dll。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 2012-12-21
      • 2012-11-09
      • 2017-03-24
      • 1970-01-01
      相关资源
      最近更新 更多