Löschen des Mutexes funktioniert nicht



  • HANDLE a;
    	HANDLE b;
    	char ab[500];
    	a = CreateMutex(NULL, FALSE, "Hallo");
        if(a == INVALID_HANDLE_VALUE) {
    		MessageBox(NULL, "a", 0, 0);
            return;
        }
    	else if(GetLastError() == ERROR_ALREADY_EXISTS) {
    		MessageBox(NULL, "b", 0, 0);
    		a=OpenMutex(MUTEX_ALL_ACCESS, TRUE, "Hallo");
    		sprintf(ab,"%d",GetLastError());
    		if(a==NULL)MessageBox(NULL,ab,0,0);
    		else if(a==ERROR_FILE_NOT_FOUND)MessageBox(NULL,"df",0,0);
    		sprintf(ab,"%d",GetLastError());
    		if(!ReleaseMutex(a))MessageBox(NULL,ab,0,0);
    		CloseHandle(a);
            //return;
        }
    

    Das Mutex Hallo existiert und bei Openmutex wird auch kein Fehler ausgegeben, aber trotzdem kann ich das mutex nicht löschen...
    Das ganze soll eine Art von Kommunikationen zwischen Programmen via 'globalen Werten' darstellen..



  • Hat keiner eine Idee?
    Releasemutex? Warum funktioniert es nicht? 😞


  • Mod

    Du bekommst doch mit CreateMutex ein Mutex Handle, wenn der Mutex existiert. Warum machst Du jetzt noch einmal OpemMutex? Du müsstest also einmal CloseHandle für das OpenMutext und einmal für CreateMutex durchführen.

    Aber lass OpenMutext einfach weg. ReleaseMutext hat nichts mit dem "löschen" des Mutex zu tun. Nur CloseHandle.


Anmelden zum Antworten