DEPENDS工具和DUMPBIN工具使用
在系统部署运行时我们经常发现某个程序在开发机器中可以运行,但是部署在某台PC上缺不能运行,也存在在某些机器上可运行换一台机器却不能运行。主要表现出两种现象:
(1)、运行、调试时出现程序启动时报错,提示出现错误无法启动。
(2)、程序执行数据库查询语句时直接跳过,查询函数调用时断点也无法中断。并且无执行结果。
其实出现这样的原因最主要是我们部署的程序缺少一些必要的运行库(注意库的版本,同样的库如果版本不一致也可能出现题)。
1.Depends
Depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(dll),以及该exe或dll引用了这些dll中的哪些接口。同时也可以看到每个被依赖的dll中的所有导出的函数接口。

该工具得到的是查看程序中隐式连接的Dll库,也就是用LIB关联的Dll模块,无法显示由显示连接的Dll模块,也就是用LoadLibrary函数导入的Dll函数。
2.DUMPBIN
// open_www.cpp : 定义控制台应用程序的入口点。
#include <stdio.h>
#include <stdlib.h>
extern "C"_declspec (dllexport)int add(int a,int b)
{
return a+b;
}
int main(void)
{
int c=;
c=add(,);
printf("c=%d\n",c);
return ;
}
2.1 开启CMD
2.2 移动目录到C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin
(DUMPBIN.EXE所在目录)
2.3 运行命令:VCVARS32.BAT
如果不运行vcvars32.bat会出现以下提示
2.4 下面就可以调用dumpbin.exe命令了

如果导出函数前不加extern "C"
/*extern "C"*/_declspec (dllexport)int add(int a,int b)
则显示结果为:

DEPENDS工具和DUMPBIN工具使用的更多相关文章
- VS2010中dumpbin工具的使用
用VS2010生成的.obj文件..lib库..dll库..exe执行文件,如果想查看其中这些文件或库包含了哪些函数以及相关的信息(符号清单),可以通过VS2010自带的dumpbin工具来完成. d ...
- Android高手速成--第四部分 开发工具及测试工具
第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...
- 30款基本UX工具 - 思维流程工具 & 原型工具
来源:GBin1.com 现在的开发人员在建造网站时,注重的是布局和技术特性,但是往往忽略了更重要的一点,那就是用户体验. 如 果用户在使用的时候,不能简单清楚的知道该要如何操作,那么他们一定会选择另 ...
- 分享两个网址,一个是使用mssql自带的跟踪工具和分析工具
http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 使用mssql自带的跟踪工具和分析工具 http://blog.csdn.net ...
- 我的工具:Ping工具
C# Ping工具 通过该工具可以多个地点Ping服务器以检测服务器响应速度,同时也可以测试网站的响应速度,解析时间,服务器连接时间,下载速度 工具下载地址:https://download.csdn ...
- 多功能网页刷新工具,刷pv工具
多功能网页刷新工具,刷pv工具,在线刷流量,刷PV,刷UV小牛刷新助手功能介绍:1.设置多个刷新网页地址.2.设置刷新时间3.开始工作4.其他操作:老板键:打开时自动刷新:置系统托盘5.可手动输入地址 ...
- 【转载】Windows上那些值得推荐的良心软件-整理 easybcd 引导工具 easyuefi 引导工具
您查询的关键词是:清理dism知乎 以下是该网页在北京时间 2019年03月17日 21:56:16 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 htt ...
- Android 开发工具介绍-SDK工具和平台工具
原文链接:http://android.eoe.cn/topic/android_sdk Android的SDK提供各种工具可以帮你为Android平台开发移动应用程序.这些工具被分类成两组:SDK工 ...
- 拍拍贷投资工具|拍拍贷投标工具|PPD投标工具|PPD投资工具介绍
我们先来分析一下现在市场上在PPD投资的途径: 其他解决方案 1.在网站或者手机客户端手动投标 这种方法对于非常小额的资金是可以的,稍微多一点就会发现不可行,目前PPD手动刷新出来的标几乎都是你刚刷新 ...
随机推荐
- ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件
#!/bin/bash NDK_ROOT=/home/wjh/fox/android-ndk-r9c/ PREBUILT=${NDK_ROOT}toolchains/arm-linux-android ...
- Java程序员之Spring(一) 入门
一. Spring 原理讲解 Spring 是一个轻量容器框架(开源):Spring的核心是 IoC(控制反转) 和 AOP(面向切面编程): Spring 由7个模块组成: Spring Core ...
- Spring的常用下载地址
第一种,简单粗暴直接 1 http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEAS ...
- Oracle定时值执行存储过程
declare jobno number; begin dbms_job.submit( jobno, 'p_dosomething;', --what ...
- ALSA声卡笔记2---ASoC驱动框架
1.简单了解一下ASOC 在嵌入式系统里面的声卡驱动为ASOC(ALSA System on Chip) ,它是在ALSA 驱动程序上封装的一层 分为3大部分,Machine,Platform和C ...
- Python Object Oriented
1. Creating class class className: 'Optional class documentation string' class_suite The class has a ...
- Tkinter Entry
Python - Tkinter输入(Entry): 用于接受用户Entry小窗口部件单行文本字符串. 用于接受用户Entry小窗口部件单行文本字符串. 如果你想显示多行文本可以编辑,那么你应该使 ...
- MySQL查看用户权限的两种方法
http://yanue.net/post-96.html MySQL查看用户权限命令的两方法: 一. 使用MySQL grants MySQL grant详细用法见:http://yanue.net ...
- Halcon学习之七:改变图像的现实方式和大小
change_format ( Image : ImagePart : Width, Height : ) 改变Image图像大小,而且ImagePart图像为灰度值图像. crop_domain ( ...
- leetcode462
public class Solution { public int MinMoves2(int[] nums) { var list = nums.OrderBy(x => x).ToList ...