关于Globallock 和Globalunlock
m_hMPP = ::GlobalAlloc(GMEM_MOVEABLE, sizeof(MONITORPROCPARAMS));
m_pMPP = (LPMONITORPROCPARAMS)::GlobalLock(m_hMPP);
m_pMPP->lpConn = m_pConn;
m_pMPP->lpCallback = lpMonitorProc;
m_pMPP->lpCallbackParam = lParam;
这是m_MPP的初始化.下面将m_pMPP作为一参数传入线程函数
if(::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)CommMonitorProc,
(LPVOID)m_pMPP, 0, &dwThreadID))
.
//在CommMonitorProc里:
CommMonitorProc(LPVOID lpThreadParameter)
{
HGLOBAL hParams = (HGLOBAL)lpThreadParameter;
LPMONITORPROCPARAMS pParams = (LPMONITORPROCPARAMS)::GlobalLock(hParams);
}
这样m_hMPP和hParams不是指向同一块内存吗?可为什么这块内存的lock count只有1
::GlobalUnlock(hParams);返回的值是0?