在两个进程之间共享数组

时间:2013-09-05 01:00:49

标签: c++ arrays winapi memory

我有一个我需要在两个进程之间共享的数组。第一个进程有一个注入的DLL,它不断地抓取有关几个对象的信息,第二个进程需要接收这些信息。我不断更新这个数组(对象中的数据变化很大),另一个进程需要不断地接收这些更新。我见过人们使用共享内存的例子,但我不确定如何使用它来不断更新数组。你可以向我提出任何建议或代码吗?

2 个答案:

答案 0 :(得分:2)

您可以使用memory mapped file在多个进程中共享阵列。

答案 1 :(得分:0)

您可以在加载该DLL的进程之间共享DLL中的数据。有关如何使用#pragma data_seg执行此操作的详细信息,请参阅How do I share data in my DLL with an application or with other DLLs?。因此,如果您将数组存储在DLL中并且两个进程都打开了DLL,那么您只需要某种同步(例如互斥)来仲裁对数据的共享访问。

为方便起见,您可能希望在DLL中实现导出函数来读取/写入数组数据,而不是导出原始数组本身。