delphi的消息机制里,我在一个窗口里通过发送消息(PostMessage)给另一个窗口,那怎么传递字符串信息呢?
delphi的消息机制里,我在一个窗口里通过发送消息(PostMessage)给另一个窗口,那怎么传递字符串信息呢?
必须使用sendMessage.
sendmessage会等待接受消息完成后才继续执行,这样你的str才会被另一个窗口可靠接收。postmessage传递完消息立即返回,这样接收窗口就不一定完全接收当时传递的str.尤其是在局部变量的情况。
而进程间的数据传递好像只有用wm_copydata消息,它可以跨进程拷贝内存。
使用WM_COPYDATA传递.
发送:
Delphi(Pascal)
procedureSendString(strMSG: string);
var
begin
GetMem(pBuf, Length(strMSG) +1);
try
finally
end;
end;
接收:
Delphi(Pascal)
procedureWMCopyData(varMSG: TMessage); message WM_COPYDATA;
procedureTForm1.WMCopyData(varMSG: TMessage);
var
end;