【问题标题】:Two dimensional Safearray in delphi?delphi中的二维Safearray?
【发布时间】:2013-06-22 07:26:38
【问题描述】:

我需要对 COM 方法进行单元测试,因此我需要创建一个字符串类型的二维 Safearray。

怎么做?

【问题讨论】:

    标签: delphi com delphi-2010 safearray


    【解决方案1】:

    像这样创建一个二维数组:

    var
      arr: Variant;
    ....
    arr := VarArrayCreate([1, 10, 1, 5], varInteger);
    

    这将创建一个数组,其主要维度的边界为 1..10,次维的边界为 1..5:

          1      2      3      4      5 
      ┌──────┬──────┬──────┬──────┬──────┐
     1│ [1,1]│ [1,2]│ [1,3]| [1,4]| [1,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     2│ [2,1]│ [2,2]│ [2,3]| [2,4]| [2,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     3│ [3,1]│ [3,2]│ [3,3]| [3,4]| [3,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     4│ [4,1]│ [4,2]│ [4,3]| [4,4]| [4,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     5│ [5,1]│ [5,2]│ [5,3]| [5,4]| [5,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     6│ [6,1]│ [6,2]│ [6,3]| [6,4]| [6,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     7│ [7,1]│ [7,2]│ [7,3]| [7,4]| [7,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     8│ [8,1]│ [8,2]│ [8,3]| [8,4]| [8,5]│
      ├──────┼──────┼──────┼──────┼──────┤
     9│ [9,1]│ [9,2]│ [9,3]| [9,4]| [9,5]│
      ├──────┼──────┼──────┼──────┼──────┤
    10│[10,1]│[10,2]│[10,3]|[10,4]|[10,5]│
      └──────┴──────┴──────┴──────┴──────┘
    

    当您说要创建一个包含字符串的数组时,我认为您指的是 COM BSTR。在这种情况下,当您调用 VarArrayCreate 时,将 varOleStr 作为 var 类型参数传递。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2019-06-28
      • 2014-05-14
      • 2019-06-18
      • 2020-10-19
      • 2016-02-24
      • 1970-01-01
      相关资源
      最近更新 更多