помоему это совершенно разные операции. если тебе мьютекс больше не нужен - закрывай хендл. а захват и освобождение тут совсем не при чем
Спасибо за ответ Смотри, нужно синхронизировать 2 процесса Делаю так MutexHandle = OpenMutex() if (MutexHandle) { WaitForSingleObject(MutexHandle); } MutexHandle = CreateMutex() .... далее идет код, ради которого все и затевалось /*Теперь нужно сделать так, чтобы освободить мутекс в нашем процессе и чтобы в другом началось выполнение кода Мутекс более не нужен Нам нужно закрыть хендл или зарелизить? */
это что за цирковой номер? зачем сначала опен потом крейт. Если нужно освободить мьютекс - делаешь релиз. Если мьютекс вообще больше никогда не нужен - закрываешь хендл
ну... у вас на форуме нашел такое решение =) Если открылся - значит мутекс существует... Если не открылся - тогда криейт. А как нужно? Просьба не пинать, я только учусь
KaPax MutexHandle = OpenMutex() if (MutexHandle) { WaitForSingleObject(MutexHandle); } else{ MutexHandle = CreateMutex() }
да, суть наверное такая, т.к. кода не видел можно просто открыть, а потом вызвать GetLastError, чтобы узнать, существует он уже или нет
KaPax Rustem MSoft Если вызвать CreateMutex к уже существующему именованному Mutex'у, то он вернёт хэндл к нему. Так что для данной задачи в "цирковых номерах" с OpenMutex необходимости нет.
l_inc, а если надо проверить существование мутекса? Тогда или сначала открыть его, или использовать GetLastError, как я и говорил. Поэтому не вижу противоречий в моих словах
MSoft Я ж написал: "Для данной задачи". А в данной задаче у нас в случае отсутствия Mutex'а он всё равно будет создан. Поэтому смысла в OpenMutex нет.