发送消息端:
const char* msg = "ReqLoginStatus";
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strlen(msg)+1;//多加一个长度,防止乱码
cpd.lpData = (void*)msg;
HWND hWnd = ::FindWindow(NULL,CA2W("客户端"));
if (hWnd)
{
LRESULT lr =::SendMessage(hWnd,WM_COPYDATA,(WPARAM)m_hWnd,(LPARAM)&cpd);
if (lr!=S_OK){
logs->WriteFormat("发送ReqLoginStatus失败");
}
}
接收端:
switch (uMsg)
{
case WM_COPYDATA:
{
MessageBoxA(NULL,"recved","",MB_OK);
COPYDATASTRUCT *pCopyData = (COPYDATASTRUCT*)lParam;
char szBuffer[300];
memset(szBuffer, 0, sizeof(szBuffer));
sprintf(szBuffer, "dwData:%d cbData:%d\r\nlpData:0x%08x = %s\r\n\r\n",
pCopyData->dwData, pCopyData->cbData,
(PVOID)pCopyData->lpData, (char*)pCopyData->lpData);
break;
}
}