ss[]//var ss:String;

Pointer(ss)^
是不是一个意思呢? 答:不是。
ss[]表示第一个字符。如:ss:='abc'
则表示'a'。ss[]=Length(ss);
Pointer(ss)^ 和 @s 也不一样。
就连 cc:PChar
Pointer(cc)^ 和 @cc 也不一样。 应用:
一、发送字符串 或者 Record procedure SendStr(ss:String);
var cds:TCopyDataStruct;hh:HWND;
begin
hh:=FindWindow('TfrmFYErpMsg',nil);
if hh<> then
begin
//cds.dwData:=Handle;可要可不要
cds.cbData:=Length(ss)+;//不能漏掉+
cds.lpData:=AllocMem(cds.cbData);//GetMem(cds.lpData,cds.cbData);可替代
StrCopy(cds.lpData,PChar(ss));
SendMessage(hh,WM_COPYDATA,hh,Cardinal(@cds));
FreeMem(cds.lpData);
end;
end; TRR=Record
a:String[];
b:PChar;//这里注意,不能使用PChar这种长度可变的。
d:Double;
end;
procedure SendRec(aa:TRR);
var cds:TCopyDataStruct;hh:HWND;
begin
hh:=FindWindow('TfrmFYErpMsg',nil);
if hh<> then
begin
cds.cbData:=sizeof(aa);
// cds.lpData:=AllocMem(cds.cbData);//GetMem(cds.lpData,cds.cbData);
cds.lpData:=@aa;
SendMessage(hh,WM_COPYDATA,hh,Cardinal(@cds));
// FreeMem(cds.lpData);不知道怎么要这个???
end;
end; 二、接收 procedure RecordWM(var ARec:TWMCopyData);message WM_COPYDATA; procedure TfrmFYErpMsg.RecordWM(var ARec: TWMCopyData);
var s:String;x:TRR;
begin
//字符串
s:=StrPas(ARec.CopyDataStruct^.lpData);
//Record
x:=TRR(ARec.CopyDataStruct.lpData^);
s:=x.a+#+x.b+#+FloatToStr(x.d);
end;

最新文章

  1. shell-参数做下标
  2. 【poj3764】 The xor-longest Path
  3. Swift方法
  4. 微信支付-b
  5. SQL给字段加上统一的某个字符
  6. 足球3v3心得
  7. BZOJ 1492: [NOI2007]货币兑换Cash( dp + 平衡树 )
  8. 【转】使IFRAME在iOS设备上支持滚动
  9. Python之函数知识
  10. coursera无法观看视频解决方法
  11. Sphinx学习笔记(一)
  12. 在 ReactNative 的 App 中,集成 Bugly 你会遇到的一些坑
  13. SQL2005EXPress自动备份
  14. python 离群点检测
  15. Your branch is ahead of &#39;origin/master&#39; by 2 commits.
  16. 神州数码OSPF路由汇总配置
  17. 性能测试二十三:环境部署之Redis安装和配置
  18. 单件模式——Head First
  19. odoo开发笔记:Server+Action服务器动作自动触发执行
  20. dockerfile介绍

热门文章

  1. http状态码301和302的区别
  2. html页面中的title设置为空格
  3. 转:openwrt 框架分析
  4. [译]TensorFlow入门
  5. Shell #*/ 和 %/*
  6. Sublime 修改快捷键
  7. CFG文件格式
  8. ubuntu上安装boost库
  9. 20155208徐子涵 2016-2017-2 《Java程序设计》第2周学习总结
  10. Web四则混合运算