【问题标题】:Difference between x86 and 64bit assembly in .NET.NET 中 x86 和 64 位程序集的区别
【发布时间】:2010-06-16 09:03:35
【问题描述】:

能否告诉我 32 位和 64 位 .NET 程序集之间的区别?

我明白什么时候需要精确而不是选择 AnyCPU 配置。

问候, 三田

【问题讨论】:

    标签: .net multiplatform


    【解决方案1】:

    .NET 中的汇编目标很少 * x86 - 32 位,应用程序将作为 32 位进程运行,无论是在 Win64 上 * x64 - 64bit,应用程序将在 Win64 上作为 64 位进程运行,在 32 位系统上运行失败。 * AnyCPU - 应用程序将使用最合适的定位。 * IA64 - 英特尔安腾平台

    通常,在纯托管应用程序中,最合适的目标是 AnyCPU。如果您的应用程序使用 PInvoke 或 COM 组件,您可能需要根据您使用的非托管组件的目标来定位您的应用程序。

    【讨论】:

    • 我了解何时应该使用每个配置。我不明白 32 位和 64 位 .NET 程序集有什么区别。
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      在与其他应用程序交互(通过 COM)时,我在运行 x64 位代码时遇到了一些问题。

      DLL/EXE 的标头中有一些位设置为 x86 或 x64 代码,.Net 加载程序会查看这些位。 IL 没有改变。你甚至可以在编译后使用CorFlags进行设置

      【讨论】:

      • 我了解应在何时使用每个配置。我不明白 32 位和 64 位 .NET 程序集有什么区别。
      • 32BIT 相差一位
      猜你喜欢
      • 2015-01-20
      • 1970-01-01
      • 2017-03-11
      • 2023-03-27
      • 2015-06-14
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      相关资源
      最近更新 更多