我認爲這兩個函數將返回相同的內核句柄。 我寫一個測試程序來證明我的觀點:CreateMutex()和OpenMutex()返回不同的句柄
在我的節目,我創建一個名字內核句柄「_MYTEST」
hHandle1 = CreateMutex(NULL, false, _T("_MYTEST"));
然後我開始一個線程,該線程與打開上面的把手以下代碼:
hHandle2 = OpenMutex(MUTEX_ALL_ACCESS, false, _T("_MYTEST"));
當我運行程序時,發現兩個返回值不相等! hHandle2的值比hHandle1的值大4。 爲什麼?我的代碼中是否有任何問題?如果不是,爲什麼這兩個值不相等?
這是完全正常的,與打開同一文件兩次沒有區別。關閉其中一個手柄不會關閉另一個手柄。那會很糟糕。 – 2012-04-24 02:46:31