如何从应用服务器(COM+)返回二进制流给客户端。今天下午下班前解决者200分相送!(50分)

  • 主题发起人 主题发起人 特尔斐
  • 开始时间 开始时间

特尔斐

Unregistered / Unconfirmed
GUEST, unregistred user!
如何从应用服务器(COM+)返回二进制流给客户端。今天下午下班前解决者200分相送!
先上50分,免得浪费我来这不易的DFW币。
 
转换成Variant数组进行传递。
 
to zhliangming:
二进制流该如何转为Variant数组?在客户端又如何还原?
给段代码如何?
成功的话,200分是您的啦!
 
在服务器端定义一个接口函数,返回值为TMemoryStream,
再让客户端调用.
 
服务器端是不支持TMemoryStream类型的返回值的。
 
留下E-Mail和200分,我明天一早把程序发给你。^_^
 
procedure VariantToStream (const V: OLEVariant;
Stream : TStream);
var
P : Pointer;
begin
Stream.Position := 0;
Stream.Size := VarArrayHighBound (V, 1) - VarArrayLowBound (V, 1) + 1;
P := VarArrayLock (V);
Stream.Write (P^, Stream.Size);
VarArrayUnlock (V);
Stream.Position := 0;
end;

procedure StreamToVariant (Stream : TStream;
var V: OLEVariant);
var
P : Pointer;
begin
V := VarArrayCreate ([0, Stream.Size - 1], varByte);
P := VarArrayLock (V);
Stream.Position := 0;
Stream.Read (P^, Stream.Size);
VarArrayUnlock (V);
end;
 
to shiningplus:
本来您可以拿到两百分的,但您来迟了,有位老大已发了代码给我。
还是非常谢谢您的解答。
 
声明:不是我! ^_^
 
后退
顶部