Создается мутекс HANDLE hHande = CreateMutex(0, 0, "mut_name");
После чего OpenMutex(MUTEX_ALL_ACCESS, 0, "mut_name") начинает возвращать указатель на него.
Каким образом можно удалить созданный мутекс, чтобы OpenMutex перестал возвращать указатель на него? CloseHandle(hHande) и ReleaseMutex(hHande) не помогают.
CreateMutex "открывает" свежесозданный mutex. OpenMutex тоже "открывает" существующий mutex.
Если вы хотите, чтобы mutex был уничтожен, вам надо "закрыть" через CloseHandle все "открытия". То есть вызовы CreateMutex и OpenMutex вкупе требуют два последующих вызова CloseHandle, чтобы mutex уничтожился
HANDLE hHandle = CreateMutex(0, 0, "mut_name");
// Открытие. Счетчик открытий: 1
HANDLE h = OpenMutex(MUTEX_ALL_ACCESS, 0, "mut_name");
// Открытие. Счетчик открытий: 2
CloseHandle(h);
// Закрытие. Счетчик открытий: 1. Mutex все еще существует
CloseHandle(hHandle);
// Закрытие. Счетчик открытий: 0. Mutex уничтожен
h = OpenMutex(MUTEX_ALL_ACCESS, 0, "mut_name");
// Получаем NULL
Продвижение своими сайтами как стратегия роста и независимости