• depends工具查看exe和dll依赖关系


    应用场景

    在使用QT等图形用户界面应用程序开发框架开发Windows程序时,通常需要将写到的程序发布到其它计算机中进使用。在使用Qt发布程序时,虽然使用windeployqt工具能够自动打包好大部分依赖库,但还是难免会漏掉一些第三方库导致发布的程序无法在其它机器中运行。比较常见的弹出如下所示:
    在这里插入图片描述
    还有一种场景是我们在调用第三方dll库时,不知道有哪些函数接口,不明白库与库之间的依赖调用关系。这些问题都可以使用depends工具来帮助解决。

    简介

    depends工具全称叫做Dependency Walker,根据名称就能大致明白它是一款用来检测依赖关系的工具,我们直接翻译下官方的介绍:

    Dependency Walker是一个免费实用程序,它可以扫描任何32位或64位Windows模块(exe、dll、ocx、sys等),并构建所有依赖模块的层次树图。对于找到的每个模块,它列出了该模块导出的所有函数,以及其他模块实际调用的函数。另一个视图显示所需文件的最小集合,以及每个文件的详细信息,包括文件的完整路径、基址、版本号、计算机类型、调试信息等。

    Dependency Walker对于排除与加载和执行模块相关的系统错误也非常有用。Dependency Walker可以检测许多常见的应用程序问题,例如缺少模块、模块无效、导入/导出不匹配、循环依赖性错误、模块的机器类型不匹配以及模块初始化失败。

    Dependency Walker完全免费使用。但是,您可能无法从分销中获利,也不能将其与其他产品捆绑在一起。

    使用方法

    软件使用方法十分简单,安装过程在此不做赘述,进入官网下载软件后正常安装即可。
    打开软件后,直接将要我们想要查看依赖关系的exe程序或者dll文件拖拽到窗口中灰色区域,拖拽后软件可能会卡顿一段时间,此时软件正在快速分析依赖关系,耐心等待即可,时间长短与依赖关系复杂程度相关。
    在这里插入图片描述

    加载完成后,在窗口左上方区域便可以看到依赖关系,在右侧中间窗口,可以看到dll中的函数符号。
    在这里插入图片描述
    如果电脑没有检测到相应库的文件,会提示为红色。我们只需在我们开发软件的电脑中找到该库文件,将其加入到发布程序中去就可以解决程序在其它机器无法运行的问题了。

  • 相关阅读:
    vue中组件传值 引用页面与组件页面绑定参数 vue省市地区街道级联选择组件
    docker in docker使用方式
    带团队后的日常思考(十二)
    全域外卖推广怎么做才能赚钱?
    UI 到底重不重要?
    后端程序员生产力工具合集
    B端设计的核心:助你成功的关键!
    webrtc vp8/9视频编解码介绍
    单链表的递归详解 (leetcode习题+ C++实现)
    NVIDIA NCC​L 源码学习(三)- 机器内拓扑分析
  • 原文地址:https://blog.csdn.net/fangye945a/article/details/125397506