快捷搜索: 王者荣耀 脱发

exe可执行文件依赖dll查看和打包

在发布程序给用户使用的时候通常要将exe依赖的动态链接库也打包给用户,以防用户电脑没有相应链接库而出错。查看程序依赖项可以用VS自带的dumpbin,本人按照默认路径装的VS2019,其路径如下:

C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.22.27905inHostx64x64

将其加入环境变量

用如下命令查看:

dumpbin.exe /imports .
tsp7player.exe

或者将依赖项输出到记录文件:

dumpbin /imports .
tsp7player.exe >dllsave.txt

完成上述操作就可以看到程序依赖的所有dll了,不过因为打印的东西有点多,看着不太直观,可用如下代码对输出的“dllsave.txt”文件进行整理(因为最近在看QT,就用QT实现了一个)

#include <QtCore/QCoreApplication>
#include <QFile>//文件IO头文件
#include <QTextStream>//文件流头文件

int main(int argc, char *argv[])
{
          
   
	QCoreApplication a(argc, argv);
	QFile file("dllsave.txt");//文件对象
	if (!file.exists())
	{
          
   
		printf("文件不存在");
		return 0;
	}
	if (!file.open(QIODevice::ReadOnly| QIODevice::Text))//以只读和文本方式打开文件
	{
          
   
		printf("文件打开失败");
		return 0;
	}
	QTextStream stream(&file);//用文本流提取文件
	stream.setAutoDetectUnicode(true);//自动检测Unicode,这样可以正常读取中文,不出现乱码
	QString readline;
	while (!stream.atEnd())
	{
          
   
		readline = stream.readLine();//读取一行数据
		if (readline.contains(".dll"))//字符串中包含字符
		{
          
   
			printf("%s
", readline.toStdString().data());//将读取对象打印出来
		}
	}
	file.close();
	return a.exec();
}

有了这份文件,我们可以通过everything来找到对应的dll,再打包进程序就OK了。

经验分享 程序员 微信小程序 职场和发展