createmutex

L

Leon McCalla

I created a DLL that hooks int to a service and it ran for about 3 months
but now suddenly it is failing.

The problem is that the CreateMutex functions in the DLL are all failing due
to Error 183 (ERROR_ALREADY_EXISTS). Even if i create the Mutex with a new
name or with a NULL name i keep getting the error. what is the problem?


hRunMutex = CreateMutex(NULL, TRUE, NULL );
StringCbPrintf(junk,250,"hRunMutex: GetLastError %d\n", GetLastError() );

Leon
 
J

John Phillips

Are you sure that CreateMutex() fails? Just that you're not checking the
return value in your code snippet, and I've seen many a person misuse the
GetLastError() function.
 
T

Tao Zhou

First, you need to check hRunMutex if it is previous valid mutex handle, if
you don't use, release it.
Second, you can use different name every time to createmutex.
Finally, if you need to create new mutex every time rather than use existed
mutex, you also need to control the number of mutex.

Tao
 
A

Alexander Grigoriev

If CreateMutex succeeded, LastError is not reset to zero.

You can only check GetLastError if CreateMutex() call failed.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top