gpt4 book ai didi

c# - .NET 并发集合是否可用于进程间 x32 与 x64 通信?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:33 30 4
gpt4 key购买 nike

我有一个我无法控制的 32 位应用程序。我目前让它与 32 位 C++ DLL 通信,后者处理数据并将其传递到 32 位 .NET DLL,我的 C# 应用程序可以在其中访问它。我想将我的 C# 应用程序升级到 64 位以获得更大的内存访问权限。

有没有办法让我的 32 位 C++ DLL 与 .NET 并发集合(特别是 ConcurrentQueue)对话?这会允许进程间通信吗?如果是这样,有没有我可以学习的例子?如果不是,有没有人知道任何 API 或库来解决双向 32 - 64 位进程间通信。

对于许多开发人员来说,这似乎是一个主要问题,但我的搜索并没有发现一个快速、可靠、可能简单的解决方案。我觉得很奇怪,主要组件开发人员不提供任何解决方案(我找到了)。

在此先感谢您的帮助。

最佳答案

无法在进程内混合使用 32 位和 64 位应用程序和 dll。

如果您想在 32 位和 64 位应用程序之间进行通信,那么您有几个选择:

  1. 将 32 位库打包成 COM 对象并将其托管在进程外。 COM 会将调用从 64 位编码到 32 位,然后再返回。

  2. 使用 IPC(例如命名管道、TCP 或 WCF)在 32 位和 64 位应用程序之间进行通信。

  3. 使用内存映射文件通过共享数据结构交换数据。这可能是最复杂的解决方案。

关于c# - .NET 并发集合是否可用于进程间 x32 与 x64 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21314492/

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