代码之家  ›  专栏  ›  技术社区  ›  subbu

在C++中创建命名Mutex并在C++中访问它

  •  0
  • subbu  · 技术社区  · 16 年前

    我有两个exe,一个是C#,另一个是vc++exe。这两个exe都需要访问一个文件。

    所以我计划在c#中创建一个命名互斥体。vc++如何访问此命名互斥体。有人能给我这个的代码样本吗

    2 回复  |  直到 16 年前
        1
  •  1
  •   Richard    16 年前

    C++代码中的类似内容:

    HANDLE hMutex = CreateMutex(NULL, FALSE, name);
    if (hMutex == NULL) {
      // Handle failure.
    }
    

    如果您需要知道互斥体是否已经存在,请检查 hMutex != null && GetLastError() == ERROR_ALREADY_EXISTS

    对于两个进程在同一会话中的情况,您获得的默认ACL应该是OK的,否则您将需要设置适当的ACL。

        2
  •  1
  •   nos    16 年前

    如果你在C语言中创建互斥体,你的C++代码会是:

    HANDLE mutexHandle = OpenMutex(SYNCHRONIZE,0,"NameOfYourMutex");
    if(mutexHandle == 0) {
      //handle error
    }