delphi 用windows消息传递字符串
可以用PostThreadMessage,例如:
//发送线程
Procedure TThread1.Execute; var sMes:String; pMes:^String; iTemp:Integer; begin sMes:='Test'; New(pMes); pMes^:=sMes; PostThreadMessage(thread2.ThreadID,WM_StartRecording,Integer(pMes),0); iTemp:=111; PostThreadMessage(thread2.ThreadID,WM_OriginalData,iTemp,0); end;
//接受线程
procedure TThread2.Execute;
var
msg:TMsg;
sMes:String;
pMes:^String;
iTemp:Integer;
begin
//消息循环
while GetMessage(msg,0,0,0) do
begin
Case msg.message of
WM_StartRecording:
begin
//传过来的是String;
pMes:=msg.wParam;
sMes:=pMes^;
Dispose(pMes);
WM_OriginalData:
begin
//传过来的是整数
iTemp:=msg.WParam;
end;
else begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end;
end;
end;
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。