CreateEvent()怎么出现了这种情况?
pyc21 2009-03-03 09:56:12 define APP_SAMEUSRER_EVNET _T("Local\\SameUserEvent")
#define APP_1SAMEUSRER_EVNET _T("Global\\MultiUserEvent")
HANDLE CreateEventByName(LPTSTR lpEventName);
int _tmain(int argc, _TCHAR* argv[])
{
while (1)
{
HANDLE h0Event = CreateEventByName(APP_SAMEUSRER_EVNET);
if ( GetLastError() == ERROR_ALREADY_EXISTS )
{
if ( h0Event )
{
CloseHandle(h0Event);
cout<< "Exit 2 " << "Handle :"<<(long)h0Event<<endl;
cin.get();
}
}
else
{
cout<< "Created 2" << " Handle :"<<(long)h0Event<<endl;
cin.get();
}
}
return 0;
}
// 次函数根据名字创建Event
HANDLE CreateEventByName(LPTSTR lpEventName)
{
SECURITY_ATTRIBUTES sa = {0};
SECURITY_DESCRIPTOR sd = {0};
//Initializes a new security descriptor
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
//Set information in a discretionary access control list (DACL).
SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
//Create an event specified by name
HANDLE hEvent = CreateEvent(&sa, TRUE, FALSE, lpEventName);
return hEvent;
}
结果是: create 2 handle 56
exist 2 handle 60
exist 2 handle 60
怎么不是56, 而是60呢???