procedure TForm1.Button1Click(Sender: TObject);
var
reg1: TRegistry;
i: integer;
len: integer;
s: string;
buf: array of byte;
begin
SetLength(buf, 4);
buf[0] := $55;
buf[1] := $11;
buf[2] := $22;
buf[3] := $33; reg1 := TRegistry.Create;
try
reg1.RootKey := HKEY_LOCAL_MACHINE;
if reg1.OpenKey('\SAM\TEST', true) then
begin
reg1.WriteBinaryData('BUF1', buf[0], Length(buf));
len := 0;
Move(len, buf, 4);-> len := reg1.ReadBinaryData('BUF1', buf[0], Length(buf));
s := '';
for i := 0 to len-1 do
begin
s := s + ' ' + IntToHex(buf[i], 2);
end;
ShowMessage(s); reg1.CloseKey;
end;
finally
Reg1.Free;
end;
end;在-> 那一句出错:Invalid data type for 'BUF1'
如果用静态数组就一切正常。动态数组的写入已经解决了,但是读不出来。
问题出在哪里呢?
var
reg1: TRegistry;
i: integer;
len: integer;
s: string;
buf: array of byte;
begin
SetLength(buf, 4);
buf[0] := $55;
buf[1] := $11;
buf[2] := $22;
buf[3] := $33; reg1 := TRegistry.Create;
try
reg1.RootKey := HKEY_LOCAL_MACHINE;
if reg1.OpenKey('\SAM\TEST', true) then
begin
reg1.WriteBinaryData('BUF1', buf[0], Length(buf));
len := 0;
Move(len, buf, 4);-> len := reg1.ReadBinaryData('BUF1', buf[0], Length(buf));
s := '';
for i := 0 to len-1 do
begin
s := s + ' ' + IntToHex(buf[i], 2);
end;
ShowMessage(s); reg1.CloseKey;
end;
finally
Reg1.Free;
end;
end;在-> 那一句出错:Invalid data type for 'BUF1'
如果用静态数组就一切正常。动态数组的写入已经解决了,但是读不出来。
问题出在哪里呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货