如何知道dll文件是32位还是64位

如何知道dll文件是32位还是64位

dll文件使用的PE(Portable Excutable)格式,PE文件格式封装了Windows操作系统加载可执行程序代码时所必需的一些信

息,PE格式详细信息可查看MSDN article on the PE File Format。其中

包括IMAGE_FILE_HEADER结构,该结构包含了

具有以下值的机器信息:

  • IMAGE_FILE_MACHINE_I386 (0x014c)
  • IMAGE_FILE_MACHINE_IA64 (0x0200)
  • IMAGE_FILE_MACHINE_AMD64 (0x8664)

该值在dll文件的固定偏移位置,通过查询该值可获得dll文件是32位还是 24位。

我们也可以通过一些工具来进行查看:

  1. dumpbin

    dumpbin是visual studio的一个工具,打开visual studio命令提示,输入dumpbin /headers xxx.dll,使 用/headers选项。

      dumpbin /headers my64bit.dll
      PE signature found
    
     File Type: DLL
    
     FILE HEADER VALUES
            8664 machine (x64)
               7 number of sections
        57CFDACF time date stamp Wed Sep 07 17:15:59 2016
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
            2022 characteristics
                   Executable
                   Application can handle large (>2GB) addresses
                   DLL
    

    从输出中可以看出,包含0x8664,是x64的。

  2. file 命令

    如果系统中安装了mingw或者cygwin,就可以使用file命令

     file my64bit.dll
    
     my64bit.dll: PE32+ executable (DLL) (GUI) x86-64, for MS   Windows
    
    

    从输出中也可以看出是x64的。

你可能感兴趣的:(如何知道dll文件是32位还是64位)