【问题标题】:Is it possible to load a 64-bit dll into a 32-bit process?是否可以将 64 位 dll 加载到 32 位进程中?
【发布时间】:2012-02-05 22:29:03
【问题描述】:

是否可以将 64 位 dll 加载到 32 位进程中?
一般来说,我知道这不可能发生。
然而,也许有一些例外?

【问题讨论】:

  • 为什么会有例外?这些例外可能是什么?什么条件会创造它们?在什么架构上?

标签: dll 64-bit 32bit-64bit


【解决方案1】:

不可以,64 位进程都不能加载 32 位 DLL。

如果您使用的是 64 位操作系统,您可以在 64 位进程中加载​​ DLL,并让它通过 IPC 与您的 32 位进程通信。

如果您使用的是 32 位操作系统,那么您就不走运了。

【讨论】:

    【解决方案2】:

    在 .NET 中,可以将 64 位 DLL 加载到 32 位进程中仅用于反射。详情请查看“Analyze 64-bit DLL from within T4 template in Visual Studio (32-bit) using Reflection”。

    我知道这是一个特殊情况,但我想我还是会添加它,因为它可能会帮助其他人寻找与我类似的解决方案。

    【讨论】:

      【解决方案3】:

      但是今天买的新电脑至少有 4G 内存。我们不能阻止使用 64 位操作系统来避免问题。我们必须积极面对64位! Server 2008 R2 只有 64 位。 必须处理有关 EXE AnyCPU / x86、32 位 COM / C++ dll 的问题。 理想情况下编译 32 位和 64 位 COM / C++ dll。

      【讨论】:

        猜你喜欢
        • 2010-09-18
        • 2018-05-29
        • 2011-08-12
        • 2013-02-06
        • 2014-08-10
        • 2015-02-04
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        相关资源
        最近更新 更多