数组中的 [string] 属性

可以将 [字符串] 属性用于表示文本字符串的一维字符数组、宽字符数组和字节数组。 如果使用 [string] 属性,则客户端存根使用 C 库函数 strlenwstrlen 来计算字符串中的字符数。 为了避免可能出现的不一致,MIDL 不允许在 [first_is]、[ last_is] 和 [ size_is] 属性的同时使用 [string] 属性。

在 C 中使用以 null 结尾的字符串时,必须在字符串末尾为 null 字符留出空格。 例如,声明将最多包含 80 个字符的字符串时,请分配 81 个字符。 以下示例 IDL 文件演示如何使用 [string] 属性声明数组。

/* IDL file */
[ 
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(8.0)
]
interface arraytest
{
  void fArray8([in, out, string] char achArray[]);
}