在DCOM中,如何让函数返回一个Record类型?(50分)

  • 主题发起人 hycstudio
  • 开始时间
H

hycstudio

Unregistered / Unconfirmed
GUEST, unregistred user!
如我在DCOM服务器上有一个记录叫:TMyRec;
接口:IMyInterface有一个函数:function MyFun: TMyRec;
我在客户端调用时老是提示"Interface Not Supported",这是怎么回事?
有什么解决办法?
另外,请教各位三层高手:怎样做好的COM?即如何开发服务器组件,高度封装业务逻辑?
 
1.用OleVariant来传递;
2.在客户端没有注册DCOM服务器程序。
 
function RecToVariant(Rec:TMyRec):variant;
var
p:pChar;
begin
Result:=VarArrayCreate([0,SizeOf(Rec) - 1],VarByte);
p:=VarArrayLock(Result);
try
Move(Rec, p^, SizeOf(Rec))
finally
VarArrayUnlock(Result);
end;
end;

procedure VariantToRec(Value:variant): TMyRec;
var
p:pChar;
Size: Cardinal;
begin
size:=VarArrayHighBound(Value,1);
p:=VarArrayLock(Value);
try
Move(p^, Result, Size)
finally
VarArrayUnlock(Value);
end;
end;
 
顶部