• COM中的一维数组


     

    COM数组

    COM中的一维数组主要分下以下几种类型:

    1:固定数组,其维数大小是固定的,这种数组处理效率最高。主要的应用场合就是数组的大小预先可以确知,如是[in]时,就主要用这种数组了,声明语法如下

            HRESULT void Fly([in] int arr[5]);

    调用时

            Int arr[5]=new int[]{1,2,3,4,5};

            Fly(arr);

    2:适应性数组:数组的大小预先不知,就是说大小可以依赖其参数中的另一个参数,当然这个参数得要在它之前的了。声明语法如下。

            HRESULT void Fly([in] size,[out, size_is(size)] int arr[]);

                       HRESULT void Fly([in] size,[out, size_is(size)] int arr[*]);

                       HRESULT void Fly([in] size,[out, size_is(size)] int *arr);

    调用时

           Int arr[5]=new int[]{1,2,3,4,5};

            Fly(5,arr);

    在上面的声明中可以用max_is来替size_ismax_is指的数组中的最大的下标索引的大小。所以它总比size_is指定的小1.

    前面的size也可以是输出类型的。只要是输出数组,这个参数就可以是输出类型的。

    3:可变性数组:可以指定数组中的部分数据来列集,传输等,也就是只需给出部份有效的数据时就可以用到可变性数组了。声明语法如下。

             HRESULT void Fly([in] length,[in] first,[out, length_is(length),first_is(firt)] int arr[]);

             HRESULT void Fly([in] first,[in] last ,[out,first_is(first),last_is(last)] int arr[]);

    调用

             Int arr[5]=new int[]{1,2,3,4,5};

    Fly(0,3,arr);

    用这种方式主要的优点就是可以只传输合适的区域节省了传输的开销,但是它在散集时的开销就增大了,不过对远程的来讲,这个开销算不了什么的了。

    4:开放性数组,数组的大小可以指定,而且还可以指定传输的区域。就是综合了可变数组及适应性数组的表达。声明如下。

    HRESULT void Fly([in] size,[in] length,[in] first,[out,size_is(size), length_is(length),first_is(firt)] int arr[]);

    调用

             Int arr[5]=new int[]{1,2,3,4,5};

    Fly(5,3,0,arr);

    COM中的一维数组主要就是上面所举的这些。
  • 相关阅读:
    android传送照片到FTP服务器
    Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
    android上传图片至服务器
    android中如何处理cookie
    【265】shell文件创建链接
    【264】◀▶ Windows 批处理(CMD)
    【263】Linux 添加环境变量 & 全局 shell 脚本
    【262】pscp命令 实现windows与linux互传文件
    合泰 HT66F30 定时器初始化
    错误 是否保存对以下各项的更改 devenv.sin
  • 原文地址:https://www.cnblogs.com/RobertXiao/p/868234.html
Copyright © 2020-2023  润新知