这样处理发送消息与接收消息有什么问题吗?

michel0907 2009-07-10 11:24:37
procedure SendData(AFileString:WideString); 发送AFileString
var
ds:TCopyDataStruct;
hd:THandle;
begin
hd:=FindWindow(...);
if hd>0 then
begin
ds.cbData:=Length(AfileString)+1;
GetMem(ds.lpData,ds.cbData);
StrPCopy(ds.lpData,AFileString);
SendMessage(hd,WM_CopyData,0,cardinal(@ds));
FreeMem(ds.lpdata);
end
else
......
end;
接收消息的处理
procedure ReceiveMessage(var Msg:TWMCopyData);message WM_CopyData;
begin
showmessage(strpas(Msg.copydatastruct.cbdata));
end;

问题是:为什么AFileString都为字符时收到的字符串是正确的,但AFileString含有中文字时,接收的和发送的字符串就不一样呢?哪位高手知道原因,拜托了,谢谢.
...全文
26 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dinoalex 2009-07-11
showmessage(inttostr(Length(AfileString)));就知道了
  • 打赏
  • 举报
回复
haitao 2009-07-10
strpas出来的不是WideString?
  • 打赏
  • 举报
回复
相关推荐
发帖
网络通信/分布式开发

1586

社区成员

Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
帖子事件
创建了帖子
2009-07-10 11:24
社区公告
暂无公告