如何确保一次只有一个进程访问共享内存

roh*_*rma 3 c++ win32-process visual-c++

我是Win32编程的新手.我想在两个进程之间创建一个共享内存.我已经使用Memory Mapping功能创建了共享内存.

我的结构看起来像这样:

struct sharedMemory
{
  int ans1;
  int ans2;
  BOOLEAN flag1;
};
Run Code Online (Sandbox Code Playgroud)

现在我能够从不同的进程访问这个共享内存,但是我对如何将锁应用于这个共享内存感到困惑,这样只有一个进程能够访问struct成员变量.

Bra*_*vic 6

通过在调用时提供互斥锁名称CreateMutex,您可以从其他进程中看到互斥锁.

如果另一个进程将相同的名称传递给CreateMutex它,它将获得现有的互斥锁(而不是创建一个新的互斥锁),然后可以将其用于进程间同步.