【发布时间】:2012-02-05 22:29:03
【问题描述】:
是否可以将 64 位 dll 加载到 32 位进程中?
一般来说,我知道这不可能发生。
然而,也许有一些例外?
【问题讨论】:
-
为什么会有例外?这些例外可能是什么?什么条件会创造它们?在什么架构上?
标签: dll 64-bit 32bit-64bit
是否可以将 64 位 dll 加载到 32 位进程中?
一般来说,我知道这不可能发生。
然而,也许有一些例外?
【问题讨论】:
标签: dll 64-bit 32bit-64bit
不可以,64 位进程都不能加载 32 位 DLL。
如果您使用的是 64 位操作系统,您可以在 64 位进程中加载 DLL,并让它通过 IPC 与您的 32 位进程通信。
如果您使用的是 32 位操作系统,那么您就不走运了。
【讨论】:
在 .NET 中,可以将 64 位 DLL 加载到 32 位进程中仅用于反射。详情请查看“Analyze 64-bit DLL from within T4 template in Visual Studio (32-bit) using Reflection”。
我知道这是一个特殊情况,但我想我还是会添加它,因为它可能会帮助其他人寻找与我类似的解决方案。
【讨论】:
但是今天买的新电脑至少有 4G 内存。我们不能阻止使用 64 位操作系统来避免问题。我们必须积极面对64位! Server 2008 R2 只有 64 位。 必须处理有关 EXE AnyCPU / x86、32 位 COM / C++ dll 的问题。 理想情况下编译 32 位和 64 位 COM / C++ dll。
【讨论】: