樓上的是一種方法,還可以如下解決,傳數據前調用Packet將記錄型數據打包成Variant類型.
接收到后再調用Unpack將Variant解包成記錄型.
type
PMyRecord=^TMyRecord;
TMyRecord=record
A:Integer;
B:string[100];
end;
function Packet(R:TMyRecord):Variant;
var
P
ointer;
begin
Result:=VarArrayCreate([0,SizeOf(TMyRecord)-1],VarByte);
P:=VarArrayLock(Result);
try
Move(R,P^,SizeOf(TMyRecord));
finally
VarArrayUnLock(Result);
end;
end;
procedure Unpack(V:Variant;var R:TMyRecord);
var
P
ointer;
begin
P:=VarArrayLock(V);
try
Move(P^,R,SizeOf(TMyRecord));
finally
VarArrayUnlock(V);
end;
end;
或者,你還可以在服務器程序中的Type Library Editor中新增一种記錄類型.客戶端通過獲取類型庫來使用該類型.