如何知道dll文件是面向32位系统还是面向64位系统的?

在发布dll时,可以选择编译为x86模式、x64模式以及Any Cpu模式等。那么对于已经发布的dll文件,怎么知道它是支持什么系统的呢?

方法一:Reflector(反编译)

对于.Net dll文件,用Reflector工具(dnSpy)可进行辨别:

img

AnyCpu(64位优先)就是该dll在编译时选择的目标系统。

方法二:CorFlags.exe工具

使用Vistual Studio.Net自带的corflags工具,先打开vs.net 命令窗口:

输入coreflags :

img

其中PE和32BIT的值可以看出该dll支持的系统位数:
anycpu: PE = PE32 and 32BIT = 0
x86: PE = PE32 and 32BIT = 1
x64: PE = PE32+ and 32BIT = 0

方法三:Dumpin.exe工具

通过Vs.net tools中所带的dumpin命令可以查看:

dumpbin /headers

img

查看machine相关属性可辨别其支持的系统位数, 该方法还可以查看非.Net编译的dll信息。

posted @ 2021-04-16 11:05  Journey&Flower  阅读(606)  评论(1)    收藏  举报