使用 64 位项目 - .NET 中的 32 位库

本文关键字:中的 位库 NET 项目 使用 | 更新日期: 2023-09-27 18:30:38

我们的应用程序都是64位的。我们将ADODB提供商提供给第三方数据库(nexusdb)。它是 32 位的,由 .NET 库组成(我们引用得很好),我相信 C .dll它是 32 位的。因此,当我们以 32 位编译时它可以工作,在 64 位中它抱怨找不到 C .dll。

如何在不将代码编译为 32 位的情况下解决此问题?

编辑:

第三方 DLL 如下:ADONET.dll - 这是我引用的.NET本机DLL,它引用得很好。ADONETProvider.dll - 这是我保存在bin/文件夹中的 non-.NET 32位DLL。

我不想为 x86 编译我的项目,因为我引用了许多其他项目,它们都是 64。

我想确保ADONET以某种方式.dll"32位模式"调用

使用 64 位项目 - .NET 中的 32 位库

您必须使用某种代理进程和 IPC 才能从 32 位进程访问 64 位 dll。

前段时间,我写了LegacyWrapper项目,该项目将其隐藏在一个简单的API调用后面。您可能希望查看相应的博客文章以了解技术详细信息。

编辑:从版本2.1开始,LegacyWrapper还支持从32位进程加载64位DLL。