Delphi2010 和VC2010 用COPYDATA传递消息 接受不全? 请帮忙解决

video999 video999 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
发送端是delphi2010

procedure TForm1.btn1Click(Sender: TObject);
var DataStruct:TCopyDataStruct;
buffsize:Integer;
buff:PChar;
h:HWND;
begin
h:=StrToInt(edt1.Text); //vc窗体句柄
buffsize:=length(edt2.Text)*sizeof(Char)+2; //一个字符站2字节
buff:=StrAlloc(buffsize); //分配内存
StrCopy(buff,PChar(edt2.Text)); //拷贝数据到缓冲区
DataStruct.dwData:=0;
DataStruct.cbData:=buffsize;
DataStruct.lpData:=buff;
SendMessage(h,WM_COPYDATA,0,LongInt(@DataStruct));
end;


接受端是vc2010


//接受消息
BOOL CMyView::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
if (pCopyDataStruct != NULL)
{
LPCTSTR pszText = (LPCTSTR)(pCopyDataStruct->lpData);
DWORD dwLength = (DWORD)(pCopyDataStruct->cbData);
TCHAR szRecvText[1024] = {0};
memcpy(szRecvText, pszText, dwLength);
MessageBox(szRecvText, _T("Test"), MB_OK);
}
return CWnd::OnCopyData(pWnd, pCopyDataStruct);
}


问题出在 , 我用delphi写接受消息就是全的, 用vc这个 只显示 第一个字符, 那出问题了?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
video999
VC/MFC 16,550 成员 421,606 内容