【问题标题】:Programatically determine if native .exe is 32-bit or 64-bit以编程方式确定本机 .exe 是 32 位还是 64 位
【发布时间】:2011-05-04 15:06:17
【问题描述】:

我需要知道给定的 .exe 是 32 位还是 64 位,在启动它之前IsWow64Process 在这里没有用,因为还没有进程。是否有其他 API 可以为我提供这些信息?

【问题讨论】:

标签: c++ windows 32bit-64bit wow64


【解决方案1】:

如果您真的只想为 EXE 而不是 DLL 执行此操作,只需使用 GetBinaryType

确定文件是否为 可执行 (.exe) 文件,如果是, 哪个子系统运行可执行文件 文件。

【讨论】:

  • 是的,这正是我想要的,而且比我自己阅读 PE 标头要容易得多,这是其他答案所建议的。谢谢。
  • 你很幸运,你只需要 EXE :-) 这些复杂的扭曲对于 DLL 来说似乎是必要的。 Win32 中的差距,imo。
【解决方案2】:

这个post一定会帮到你。

与 C# 相关,但它会给你这个想法。

【讨论】:

    【解决方案3】:

    此信息在PE File file format(用于exe 和dll 的格式)的标题之一中可用。这些标头中的信息可以通过编程方式提取(它们位于指定的偏移量处),也可以通过 Win32 API 更安全地查询。

    好的,Liviu 为你找到了正确的指针。

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多