我正在使用自定义的Windows消息来在工作线程和主VCL线程中的窗体之间交换信息。每当我需要发送一些数据时,我会这样做:
type
PntStr = ^string;
然后是PostMessage()
var
pointString : PntStr;
(...)
New(pointString);
pointString^ := mystring;
PostMessage(frmDest.Handle, UM_THREADMSG, UM_MYEVENT1, LPARAM(pointString));
在接收表单上
try
myStrP := PntStr(MSG.LParam);
myfunction(myStrP^);
finally
Dispose(myStrP);
end;
这是处理指针分配内存的正确方式吗?调用指针上的 Dispose() 方法是否会负责释放内存?