string 屬性

[string]屬性工作表示一維charwchar_t位元組 (或對等) 陣列或這類陣列的指標必須視為字串。 字串也可以是陣列 (或陣列的指標,) 建構的指標,其欄位都是 類型位元組

typedef [ string [[ , type-attribute-list ]] ] type-specifier declarator-list; 

typedef [ struct | union ] 
{
    [ string [[ , field-attribute-list ]] ] type-specifier declarator-list;
    ...
};

[ string [[ , function-attribute-list ]] ] type-specifier ptr-decl function-name(
  [[ [ parameter-attribute-list ] ]] type-specifier [[standard-declarator]]
  , ...);

[[ [ function-attribute-list ] ]] type-specifier [[ptr-decl]] function-name(
    [ string [[ , parameter-attribute-list ]] ] type-specifier [[standard-declarator]]
  , ...);

參數

type-attribute-list

指定套用至類型的一或多個屬性。 有效的類型屬性包括 [handle][switch_type][transmit_as];指標屬性 [ref][unique][ptr];和使用屬性 [coNtext_handle][string][ignore]。 以逗號分隔多個屬性。

type-specifier

指定 基底類型結構 類型或類型識別碼。 選擇性的儲存體規格可以在 type-specifier之前。

standard-declarator

指定標準 C 宣告子,例如識別碼、指標宣告子或陣列宣告子。 如需詳細資訊,請參閱 Array 和 Sized-Pointer Attributesarrays.和 Arrays 和 Pointers

declarator-list

指定標準 C 宣告子,例如識別碼、指標宣告子和陣列宣告子。 如需詳細資訊,請參閱 Array 和 Sized-Pointer Attributesarrays.和 Arrays 和 Pointersdeclarator-list是由一或多個宣告子所組成,並以逗號分隔。 函式宣告子中的參數名稱識別碼是選擇性的。

field-attribute-list

指定套用至結構、等位成員或函式參數的零個或多個欄位屬性。 兩個有效的欄位屬性為 [max_is][size_is];使用方式屬性 [string][ignore][coNtext_handle]、指標屬性 [ref][unique][ptr],以及聯集屬性 [switch_type] 。 以逗號分隔多個欄位屬性。

function-attribute-list

指定套用至函式的零個或多個屬性。 有效的函式屬性為[callback][local];指標屬性[ref][unique][ptr];和使用屬性[string][ignore][coNtext_handle]。

ptr-decl

指定 套用 [string] 屬性的選擇性指標宣告子。 指標宣告子與 C 中使用的指標宣告子相同;它是從 * 指示項、 遠方修飾詞和限定詞 const所建構。

function-name

指定遠端程式的名稱。

parameter-attribute-list

由零個或多個適用于指定參數類型的屬性所組成。 參數屬性可以採用方向屬性 [in][out];欄位屬性 [max_is][size_is];指標屬性 [ref][unique][ptr];和使用屬性 [coNtext_handle][string] 。 使用方式屬性 [ignore] 無法當做參數屬性使用。 以逗號分隔多個屬性。

備註

如果 [string] 屬性與在執行時間決定界限的陣列搭配使用,您也必須指定 [size_is][max_is] 屬性,如下列範例所示:

/* a string that can hold up to MAX_STRING_LENGTH characters */
typedef [string, max_is(MAX_STRING_LENGTH)] char line[];

[string]屬性不能與指定傳輸元素範圍的屬性搭配使用,例如[first_is][last_is][length_is]。

在多維度陣列上使用時, [字串] 屬性會套用至最右邊的陣列。

若要定義計數位符串,請勿使用 [string] 屬性。 使用字元陣列或字元型指標,例如:

typedef struct 
{ 
    unsigned short size; 
    unsigned short length; 
    [size_is(size), length_is(length)] char string[*]; 
} counted_string;

[string]屬性指定存根應該使用語言提供的方法來判斷字串的長度。

在 C 中宣告字串時,您必須為標示字串結尾的額外字元配置空格。

範例

/* a string type that can hold up to 80 characters */ 
typedef [string] char line[81]; 
 
HRESULT Proc1([in, string] char * pszName);

另請參閱

陣 列

MIDL 基底類型

回檔

char

常量

coNtext_handle

枚舉

first_is

處理

介面定義 (IDL) 檔案

忽略

last_is

length_is

當地

max_is

pointer_default

Ptr

ref

size_is

結構

switch_type

transmit_as

聯盟

獨特

wchar_t