gpt4 book ai didi

c# - 在 .Net 2.0 的 64 位应用程序中使用 32 位 DLL

转载 作者:行者123 更新时间:2023-11-30 21:08:58 26 4
gpt4 key购买 nike

我需要使用来自外部公司的 COM-DLL(因此我没有源代码),它只适用于编译选项 CPU-Target x86。

但我的程序是“任何 CPU”程序,我不想更改它。

所以我阅读和谷歌了很多,发现我需要 2 个与 IPC 和 WCF 通信的进程。

问题:WCF 不适用于 .Net Framework 2.0。

那么在不更改主程序的 CPU 目标的情况下最好和最简单的方法是什么?

最佳答案

如果您有 x86 目标 dll,无论是 .Net 程序集还是 native dll,那么您必须在 32 位进程中托管此 dll - 对于 .Net,这意味着选择x86 平台,否则你的 dll 将无法在 64 位机器上加载。

如果您绝对必须尽可能拥有 64 位进程,那么使用此 dll 的唯一真正方法是创建一个外部 32 位进程来“托管”dll 并与您的主进程通信通过 IPC(进程间通信)的 64 位进程。 WCF 只是进程间通信的一种方法 - 它在 .Net 2.0 中不可用,但您仍然可以使用其他方法,例如 .Net 远程处理。

参见 Interprocess communication for Windows in C# (.NET 2.0)

然而,所有这些实现和维护起来都会很痛苦 - 除非您有非常充分的理由,只需使用 x86 平台编译您的应用程序,至少在外部公司发布 64 位版本之前版本。

关于c# - 在 .Net 2.0 的 64 位应用程序中使用 32 位 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9292606/

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