1.不同进程为什么接受端的lpbuf 内容不正确
2.当发消息端和消息响应端在一个进程中,内容,就是正确的?
发消息端:
char lpbuf[] = "MessRec" ;
CWnd * pWnd = FindWindow(NULL,lpbuf);
int nRe =-1;
msg.nType =11;
sprintf(msg.lpbuf ,"abcdef");
UINT uAddr = (UINT)(&msg);
if(pWnd)
{
nRe = pWnd->SendMessage(UWM_REPLAY_FILE,(UINT)lpbuf,10);
}消息响应端:
LRESULT CMessRecDlg::OnRecMsg(WPARAM wParam, LPARAM lParam)
{ char * lpbuf = (char *)wParam;
//MessageBox("11");
return 10;
}
2.当发消息端和消息响应端在一个进程中,内容,就是正确的?
发消息端:
char lpbuf[] = "MessRec" ;
CWnd * pWnd = FindWindow(NULL,lpbuf);
int nRe =-1;
msg.nType =11;
sprintf(msg.lpbuf ,"abcdef");
UINT uAddr = (UINT)(&msg);
if(pWnd)
{
nRe = pWnd->SendMessage(UWM_REPLAY_FILE,(UINT)lpbuf,10);
}消息响应端:
LRESULT CMessRecDlg::OnRecMsg(WPARAM wParam, LPARAM lParam)
{ char * lpbuf = (char *)wParam;
//MessageBox("11");
return 10;
}
解决方案 »
- explorer重新创建后 有什么消息
- GetDlgItem
- 哪个效率高?
- 在视中划分了两个窗口,
- "Lines ending with only a carriage return have been detected"???
- 求自定义消息的处理方法。
- 局域网UDP通讯问题,为何把目标IP 127.0.0.1换为192.168.0.5就不行了?
- 关于《VC技术内幕》(潘爱民译)第15章的一个问题
- 如何看别人的源代码???
- 请问:如何 将 int 型转成 BYTE 这个int 型的数很小,是小于255,请指教
- 小弟跪求 CRC-16 标准函数
- CFileDialog产生的界面如何改成英文界面?在线等
HWND hWndReceived = FindWindow( "Receiver", NULL );COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strDataToSend.GetLength()+1;
cpd.pData = (void*)str.GetBuffer(cpd.cbData);SendMessage( hWndReceived, WM_COPYDATA, 0, (LPARAM) & cpd );
str.ReleaseBuffer();加入映射宏:BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CMyWnd)
...
ON_WM_COPYDATA()
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()...映射函数:BOOL CMyWnd::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString strRecievedText = (LPCSTR) (pCopyDataStruct->lpData);
return CMyWnd::OnCopyData(pWnd, pCopyDataStruct);
}
SendMessage是等待响应消息涵数完成后,才返回,能否传回去一个内存块中内容?
{
PCOPYDATASTRUCT poCopyData=(PCOPYDATASTRUCT)lParam;
CString Str;
Str.Format ("%.*s", poCopyData->cbData, poCopyData->lpData);
//str 即为传过来的数值
return TRUE;
}