gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:23:03 25 4
gpt4 key购买 nike

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

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

编辑:

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

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

我想确保 ADONET.dll 以某种方式在“32 位模式”下调用

最佳答案

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

前段时间我写了LegacyWrapper将其隐藏在一个简单的 API 调用之后的项目。您可能想查看 corresponding blog post了解技术细节。

编辑: Since Version 2.1, LegacyWrapper also supports loading 64bit DLLs from a 32bit process.

关于c# - 使用 64 位项目中的 32 位库 - .NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34819926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com