假如:有一个记录类型TARecord = Record
Name: string;
age: integer;
end;
如何转化成oleVariant通过DCOM传递出去呢,
到了中间层再转回来呢?
请指点
Name: string;
age: integer;
end;
如何转化成oleVariant通过DCOM传递出去呢,
到了中间层再转回来呢?
请指点
解决方案 »
- 关于Dephi XE2 的跨平台
- 如何获取TTablControl当前Tab的位置或坐标??
- CodeGear大幅揭露Delphi和C++Builder未來的發展方向! (自李维blog)
- 关于ADOQUERY参数的问题
- 关于数据更新,有没有更好的解决办法.
- 探讨中石化,腌菜行业的这种远程系统是如何实现的?
- 问一个常规问题!
- 纪念伟大的屈原-----让我们有粽子吃,散分!!
- 物价飞涨,拜托各位程序员找工作时把工资开高点,别把行情搞坏了,对大家没好处
- 有个小问题请大家费一个神,关于listbox和SQL的,几分钟时间,等待答复//准程序员
- 开方溢出???
- 请教:TTimer的OnTimer事件中,要处理量大时,程序卡住,不能响应拖动、拉伸的消息了?
var
p: Pointer;
begin
p := VarArrayLock(Data);
try
Stream.Write(p^, VarArrayHighBound(Data,1) + 1); //assuming low bound = 0
finally
VarArrayUnlock(Data);
end;
end;function StreamToVariant(Stream: TStream): OleVariant;
var
p: Pointer;
begin
Result := VarArrayCreate([0, Stream.Size - 1], varByte);
p := VarArrayLock(Result);
try
Stream.Position := 0; //start from beginning of stream
Stream.Read(p^, Stream.Size);
finally
VarArrayUnlock(Result);
end;
end; function RecToVariant(Rec:TMyRecArr):variant;
var
p:PChar;
begin
Result:=VarArrayCreate([0,SizeOf(Rec) - 1],VarByte);
p:=VarArrayLock(Result);
try
Move(Rec[1], p^, SizeOf(Rec))
finally
VarArrayUnlock(Result);
end;
end;procedure VariantToRec(Value:variant): TMyRecArr;
var
p:PChar;
Size: Cardinal;
begin
size:=VarArrayHighBound(Value,1);
p:=VarArrayLock(Value);
try
Move(p^, Result[1], Size)
finally
VarArrayUnlock(Value);
end;
end;