1
1
我认为这个问题很难回答,因为Windows中的.NET可执行文件包含两种形式的代码: 第一部分是本地存根 这带来了系统的可用运行时(对于较旧的Windows系统,当OS加载器无法本地识别CLR程序集时)。它可以是32位或64位,就像其他Windows应用程序一样。您可以通过以下方式找到其目标架构 analyzing its PE header . 正如你所知,这很容易确定。然而,我怀疑它也可能在很大程度上与您的用例(以及大多数用例)无关,因为第一部分不包含程序的“有用”部分,主要是出于遗留原因。 第二部分是IL(字节码) 这将得到JIT编译,然后执行。这是有用的部分,但在不运行时,这在很大程度上与平台无关。这是 运行时JIT生成的代码 变为32位或64位。
现在,您可能已经意识到了一个问题: 第一部分和第二部分可能不匹配。 他们通常不会,因为最常见的场景是使用AnyCPU配置进行构建( which will typically yield a 32-bit PE executable )以及在64位系统上部署,其中IL将被JIT编译为64位指令。 最后,你必须明确决定你想知道这两个人中的哪一个(以及这是否值得麻烦)。您可能还想探索其他选项,例如利用AnyCPU程序集可以加载为32位或64位的事实,在许多情况下,您可以使用它们而无需检查。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |