如何把 结构体类型转化为 OleVariant 类型?(28分)

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把 结构体类型转化为 OleVariant 类型?
数组 ---> OleVariant ?

(全部分了)
 
比如我有一个结构

TSSS = Record
x:Longint;
Y:Longint;
end;

var
s :TSSS;
v1 :OleVariant;

如何把 s 转化为 v1
 
function ArrayOfIntegerToOleVariant(Arr: array of Integer): OleVariant;
var
i: Integer;
begin
Result := VarArrayCreate([Low(Arr), High(Arr)], varInteger);
for i := Low(Arr) to High(Arr) do
Result := Arr;
end;
 
function Buf2Ole(const Buf
Len: Integer): OleVariant;
var
p: PByte;
begin
result := vararraycreate([0, len-1], varByte);
p := Pbyte(vararraylock(result));
move(buf, p^, len);
vararrayunlock(result);
end;
 
把 OleVariant 转为结构可数组呢?
 
可以用动态数组直接赋值但我不知道这样会不会内存泄露

var
Buf:array of byte;
V1 :OleVariant;
i:Longint;
begin

// SetLength(Buf,3);
v1 := m_CanPort.Device[0,$10,0];
//ShowMessage(v1);

Buf:= v1;
{
for i := 0 to 2 do
Buf:= v1;
}

ShowMessage(IntToStr(Buf[1] shl 8 + Buf[2]));

// SetLength(Buf,0);
end;
 
多人接受答案了。
 
后退
顶部