目录
1.查看可执行程序依赖的dll
打开用VS的dumpbin命令可以查看目标程序许的dll依赖项。
Developer PowerShell for VS 2019,运行如下:
dumpbin.exe /dependents .\stream_server_window.exe
2查看dll是否为32位的还是64位
Developer PowerShell for VS 2019使用dumpin:dumpbin /headers ***.dll
3.32位程序与64位程序的区别
32位程序 | 64位程序 |
SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方 | System32文件夹,是用来存放64位程序文件的地方 |
32位程序访问System32目录,会自动被映射到SysWOW64目录 | 64位程序可以访问System32目录和SysWOW64目录 |
32位程序与64位程序有各自的注册表 | |
32位与64位程序都可以访问Program Files (x86)与Program Files目录。 | |
在64位的windows系统中,一个64位进程不能加载一个32位dll,同理一个32位进程也不能加载一个64位dll |
如何加载混乱使用,可能导致:
4. Depends工具
Depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(dll),以及该exe或dll引用了这些dll中的哪些接口。 同时也可以看到每个被依赖的dll中的所有导出的函数接口。
5.打包发布
ClickOnce部署打包程序和安装Microsoft Visual Studio Installer Projects插件
VS2019打包生成安装文件教程:VS2019打包生成安装文件教程 - guide123 - 博客园
简单打包可以将可执行文件与c++运行时库放在一起(下图是vc运行时库)
参考:
dll文件32位64位检测工具以及Windows文件夹SysWow64的坑 - 缘生梦 - 博客园
32进程调用64dll的解决方法_Yue Yongqiang的专栏-CSDN博客_32位进程无法访问64位进程的模块