Back to Forum Re New

[综合] 如何判断exe及dll是合法的可执行程序,及其是32位还是64位?

http://blog.csdn.net/sptoor/article/details/8952971


如何判断可执行程序exe及动态链接库dll是合法的可执行程序,及其是32位还是64位?
WINDOWS:在在Visual Studio 2010 命令提示符提示下,输入:

dumpbin /headers  E:\Uploads\1.exe
可以看到如下的文字:
FILE HEADER VALUES
            8664 machine (x64)
便证明你的程序是64位的,或者x86就是32位的。注意:E:\Uploads\1.exe 是exe文件路径。可以自己修改,1.exe可以换成1.dll。

dumpbin /EXPORTS E:\Uploads\1.dll
如果可以正常导出dll的接口,那么就说明你的dll是合法的,可执行的。反之,则是不合法的pe文件。注意:E:\Uploads\1.exe 是exe文件路径。可以自己修改,1.exe可以换成1.dll。

Linux:
这个就简单的了,直接用file YOUR_FILE就可以了:
isql: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.0, stripped

如果输出ELF及LSB字样的信息,则说明是可执行文件,64还是32上面都已经写了。
如果是可执行,但是你不能执行,那么看看权限吧。

****************************************************************
32位DLL文件和64位DLL文件分别该放在哪个目录下的最终权威说明


DLL文件分32位和64位。需要32位还是64位的DLL文件,根据调用它的EXE是32位的还是64位的来决定,与系统是32位或者64位无关。

在64位系统下运行32位的exe,请把需调用的32位dll文件放到 syswow64文件夹;运行64位的exe,请把需调用的64位dll文件放到system32文件夹。

在32位系统下运行32位的exe,请把需调用的32位dll文件放到 system32文件夹;无法在32位系统下运行64位exe。







EQ中文世纪地图集地址:
www.ceqmap.com

运行软件时提示缺少dll

问题:
运行软件特别是是绿色软件时提示缺少dll

解答:
这个不是下载dll就能根治的问题,需要在系统安装 VC 运行库。
VC 2005-2013运行库合集下载网址
http://www.appcgn.com/vc-redist-installer.html
VC 2015 运行库下载网址
http://www.microsoft.com/zh-CN/download/details.aspx?id=46881
EQ中文世纪地图集地址:
www.ceqmap.com
Back to Forum