Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去。这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要。很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了Dependency Walker这个小工具。但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了。看得你一脸懵逼:

你很难分清楚:倒底哪些DLL是需要打包的,哪些DLL是系统自带的。而作为打包过程中的一个小步骤,我根本不需要知道这么多信息。这个时候,我们需要一个更加简洁明了的工具。dumpbin就是今天要介绍的主角。

二、使用

dumpbin是随Visual Studio一起发布的,在Visual Studio的“本机工具命令行”中就可以直接使用。使用的第一步就是打开Visual Studio的“本机工具命令行”:

这里我选择的是“VS2015 X64本机工具命令提示符”。命令行窗口打开后直接进入到工程目录,输入命令“dumpbin /IMPORTS ReplaceAETemplate.exe > output.txt”:

Duang~~~,所有依赖的DLL项都保存到output.txt里面去了。打开瞧瞧输出内容:

依赖的动态库一项项的非常清晰明了。当然,里面也会列出一些系统的动态库。这些系统动态库在系统安装时就有了,所以不用打包进去。当然就算打包进去也不会有什么害处。这个命令再配合everything这个小工具查找依赖的DLL,简直不要太爽:

三、小结

dumpbin的IMPORTS参数是用来查看程序依赖的其他动态库的,这对于可执行程序exe和动态链接库DLL都是适用的。EXPORTS则适用于DLL查看其导出的函数接口:

结果照样重定位到output.txt中去了。这是因为如果直接在命令行中输出,前面的内容可能会被截断,导致内容看不完整。

从上面红框中可以看出,UniversalBlender.dll这个动态链接库导出了这么一些函数:capabilityAssessment, initializeDevice, runImageBlender等。

http://www.cnblogs.com/csuftzzk/p/windows_application_distribution.html

最新文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (14) -----第三章 查询之查询中设置默认值和存储过程返回多结果集
  2. mac搭建本地svn
  3. Centos安装Memcached和(Nginx)Memcache扩展详细教程
  4. logstash json和rubydebug 第次重启logstash都会把所有的日志读完 而不是只读入新输入的内容
  5. Android Studio 常见问题之Rendering Problems
  6. [系统设计/开发] APP密钥签发服务器
  7. 自定义强大的C#网络操作基础类(NetHelper)
  8. 树形遍历(java)---孩子双亲表示法
  9. rsyslog 同时发生nginx 访问日志和错误日志
  10. android欢迎页源码
  11. 使用VLC Activex插件做网页版视频播放器
  12. npm install --save 、--save-dev 、-D、-S 的区别
  13. 【转载】ARCHIVE_LAG_TARGET参数的作用(定时切换redo)
  14. Asp.net MVC 中Ajax的使用
  15. SQL记录-小表join大表查询例子
  16. C++ Leetcode Median of Two Sorted Arrays
  17. scrapy爬虫的编写步骤
  18. Luogu P1318 积水面积
  19. php开启mbstring扩展并设置支持utf-8编码
  20. PHP-007(转)

热门文章

  1. Size Balanced Tree(SBT树)整理
  2. oracle 重置序列从指定数字开始的方法详解
  3. 微擎 plugin 时间插件 图片上传插件不显示 报错 影响下面执行
  4. [Javascript] Combine Objects with Object.assign and Lodash merge
  5. Struts2之配置使用
  6. 机器学习 Softmax classifier (一个隐含层)
  7. HDoj-1874-畅通project续-Dijkstra算法
  8. 自己动手写shell命令之ls
  9. tensorflow 的版本差异与变化
  10. 【codeforces 777C】 Alyona and Spreadsheet