我有一个需要在两个进程之间共享的数组。第一个进程有一个注入的 DLL,它不断地获取一些对象的信息,第二个进程需要接收这些信息。我不断地更新这个数组(对象中的数据变化很大),而其他进程需要不断地接收这些更新。我见过人们使用共享内存的例子,但我不确定如何使用它来不断更新数组。您可以向我提出任何建议或代码吗?
问问题
1151 次
2 回答
2
您可以使用内存映射文件在多个进程之间共享您的数组。
于 2013-09-05T01:18:39.370 回答
0
您可以在加载该 DLL 的进程之间共享 DLL 中的数据。请参阅如何与应用程序或其他 DLL 共享我的 DLL 中的数据?有关如何使用#pragma data_seg
来执行此操作的详细信息。因此,如果您将数组存储在 DLL 中并且两个进程都打开 DLL,那么您所需要的只是某种同步(例如互斥锁)来仲裁对数据的共享访问。
为方便起见,您可能希望在 DLL 中实现导出函数来读取/写入数组数据,而不是导出原始数组本身。
于 2013-09-05T01:38:35.413 回答