在c#exe中创建名为Mutex并在c ++中使用dll访问它

时间:2010-02-18 12:47:40

标签: c# visual-c++ mutex

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

所以我打算在c#中创建一个名为的互斥锁。 vc ++我如何访问这个命名的互斥锁。任何人都可以给我这个

的示例代码

2 个答案:

答案 0 :(得分:1)

如果您已在c#中创建了互斥锁,则您的C ++代码将类似于:

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

答案 1 :(得分:1)

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

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

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

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