【发布时间】:2011-05-22 12:52:49
【问题描述】:
我遇到了一个我很确定我知道答案的问题,但我想我至少会问一下,看看是否有一些“灵丹妙药”可以让我头疼不已。
这是高级视图。
我有一个托管应用程序。此应用程序通过来自不同供应商的第三方库与硬件接口。我对消费托管应用程序拥有完全控制权,对硬件 API 库拥有零控制权。
供应商 A 仅提供 32 位原生 SDK。为了允许我们在 64 位系统上使用它,我们将应用程序标记为在 32 位模式下运行。一切都很好。
我们现在正在与供应商 B 集成,后者在 64 位机器上提供特定于 64 位的本机 API 库。供应商 B 提供的 32 位本机 DLL 无法在 64 位系统上运行(尝试过)。如果我构建一个以 64 位或 AnyCPU 运行的测试工具,它可以正常工作。如果我将它标记为 32 位,它会在 P/Invoke 调用中失败。
似乎供应商 A 和供应商 B 的硬件在 64 位 PC 上将是互斥的,但我想知道是否有人对如何解决这个问题提出建议。
【问题讨论】:
标签: c# interop 32bit-64bit