从多个进程

时间:2016-10-06 00:08:02

标签: c++ dll

我有一个DLL,它使用内存映射文件在Windows(C ++)中的多个进程之间提供数据共享。想要彼此读/写数据的进程使用DLL注册其窗口句柄。当其中一个将数据放入共享时,其他人会收到通知。任何进程都可以通过DLL读取或写入数据。

我希望能够阻止进程写入共享内存,直到通知完成,防止多个进程同时写入等等。感觉我需要一个"全局互斥",但是有这样的事吗?

感谢。

1 个答案:

答案 0 :(得分:0)

使用" virtuallock" WinAPI功能。

输入是映射的内存指针和映射的内存大小。

BOOL WINAPI VirtualLock(
  _In_ LPVOID lpAddress,
  _In_ SIZE_T dwSize
);

您可以VirtualUnlock取消内存,只要您愿意(根据您的业务需求)

要了解更多信息,请参阅winAPI文档。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa366895(v=vs.85).aspx