在两个应用程序间共享内存

问题描述 投票:15回答:5

我有两个不同的Windows应用程序(两个不同的人编写代码)。一个用C ++编写,另一个用C#编写。我需要一些方法来在它们之间共享RAM中的数据。必须写入数据,而另一个只读取写入的数据。我应该用什么来使它最有效和最快速?谢谢。

c# c++ process shared-memory
5个回答
23
投票

你可以使用Memory Mapped Files

Here是一篇描述如何使用它们的文章。


2
投票

使用Windows File Mapping Object,它允许您在进程之间共享内存。


2
投票

你可以使用Named Pipes

命名管道是命名的单向或双工管道,用于管道服务器与一个或多个管道客户端之间的通信。命名管道的所有实例共享相同的管道名称,但每个实例都有自己的缓冲区和句柄,并为客户端/服务器通信提供单独的管道。实例的使用使多个管道客户端能够同时使用相同的命名管道。

任何进程都可以访问命名管道,但需要进行安全检查,使命名管道成为相关或不相关进程之间的简单通信形式。


-1
投票

我建议你重新设计它,让它使用基于消息的通信。它通过自动内存管理(与共享内存相比)在.NET中更强大,更易于使用。虽然慢了。

© www.soinside.com 2019 - 2024. All rights reserved.