COM/DCOM中如何传递数组


    因为COM/DCOM对象都不在Client程序运行的内存空间(内进程COM对象除外,即便如此,为了统一接口,内进程的COM也不得传递指针),而且在Win32中所有的程序都有自己独立的2GB的内存空间,程序与程序之间传递指针(内存地址)是毫无意义的,而数组、字符串等大量的数据在程序中都是分配一定的内存空间,然后用指针加内存偏移量来存取数据的,这时,如何在COM/DCOM对象中如何传递呢?
    在Win32中引入了一新变量Variant,可以通过Variant传递数组。具体的实现方法,用Delphi实现为:

    Server(COM/DCOM程序)端:
    procedure TTestDCOM.Send4(Size: Integer; D1: OleVariant);
    type
        TData=array [0..999] of Byte;
    Var
        Data:TData;
        i:Integer;
    begin
        for i:=0 to Size-1 do begin
              Data[i]:=D1[i];
        end;
    end;

    Cleint端:

    Var
        D1:OleVariant;
    begin
        D1:=VarArrayCreate([0,99],varByte);

        {
        D1[1]:=45;
          ....  //将值存入D1中

            }
        S.Send4(99,D1);  //S是TestDCOM对象
    end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
com/dcom技术是一种用于实现分布式计算的技术,它可以实现不同计算机之间的通信和协作。该技术内部有许多关键的概念和机制。 首先,com和dcom是两种不同的技术标准,它们都是用于实现分布式计算的。comComponent Object Model)是一种基于面向对象的模型,用于组件之间的通信。dcom(Distributed Component Object Model)是在com基础上进行了扩展,使得组件能够在不同的计算机上进行通信。 com/dcom技术的核心概念是组件。组件是可重用的软件模块,具有独立的功能和接口。它们可以通过com/dcom技术进行通信和协作。组件之间的通信是通过接口实现的,每个组件可以提供一组接口供其他组件调用。 com/dcom技术的工作原理是基于远程过程调用(RPC)和对象请求代理(ORP)的。通过RPC机制,调用者可以像调用本地对象一样调用远程对象的方法。而ORP机制则是负责管理和调度对象之间的通信。 为了实现com/dcom技术,需要一种统一的标识和定位机制。com组件使用全局唯一的标识符(GUID)进行标识和定位,而dcom组件则使用全局统一资源定位符(URL)进行标识和定位。 在实际应用com/dcom技术广泛应用于分布式系统、客户端/服务器架构、Web服务等领域。它可以提高系统的可伸缩性和可扩展性,简化系统的开发和维护,提高系统的可靠性和可用性。 总之,com/dcom技术是一种用于实现分布式计算的技术,具有许多关键的概念和机制。它可以实现不同计算机之间的通信和协作,提高系统的可伸缩性和可靠性,简化系统的开发和维护,广泛应用于分布式系统和客户端/服务器架构等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值