DELPHI COM编程

来源:百度知道 编辑:UC知道 时间:2024/07/07 09:07:00
TestRecord = packed record
ResourceID: WideString;
ResourceName: ^WideString;
Money: Currency;
end;
procedure TZWD.CalcFun(const Code: WideString; Score: Integer;
var PRecord: TestRecord; TRecord: TestRecord);
var ReStr: WideString;
begin
ReStr := Code + TRecord.ResourceName^ + '我不好';
PRecord.ResourceID := Code + TRecord.ResourceID;
//PRecord.ResourceName := @ReStr 为什么用地址时返回为空
PRecord.ResourceName^ := ReStr; //正常
PRecord.Money := Score + TRecord.Money;
end;

//PRecord.ResourceName := @ReStr 为什么用地址时客户端 PRecord.ResourceName返回值为空

procedure TForm1.btn1Click(Sender:TObject);
type
TestRecord=packed record
Rn1,Rn2:^WideString;
end;
var
tr:TestRecord;
ReStr:WideString;
begin
ReStr:='before';
tr.Rn1:=@ReStr;
New(tr.Rn2);
tr.Rn2^:=ReStr;
ReStr:='after';
MessageDlg(tr.Rn1^+#10+tr.Rn2^,mtWarning, [mbOK],0);
Dispose(tr.Rn2);
end;
显示
---------------------------
Warning
---------------------------
after
before
---------------------------
tr.Rn1:=@ReStr;赋值指针。
tr.Rn2^:=ReStr;赋值指针指向的值。

结构体里面 不是说 最好不要用string么?要用字符数组么?