發送端是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這個 只顯示 第一個字符, 那出問題了?
uj5u.com熱心網友回復:
可能是字符集問題,檢查一下VC這邊是不是unicodeuj5u.com熱心網友回復:
試試 WCHAR szRecvText[1024] = {0};或者專案改成UNICODE
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/93969.html
標籤:基礎類
