다음을 통해 공유


string 특성

[string] 특성은 1차원 char, wchar_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], [문자열][무시]. 여러 특성을 쉼표로 구분합니다.

type-specifier

기본 형식, 구조체 형식 또는 형식 식별자를 지정합니다. 선택적 스토리지 사양은 형식 지정자 앞에 설 수 있습니다.

표준 선언자

식별자, 포인터 선언자 또는 배열 선언자와 같은 표준 C 선언자를 지정합니다. 자세한 내용은 배열 및 Sized-Pointer 특성, 배열, 배열 및 포인터를 참조하세요.

declarator-list

식별자, 포인터 선언자 및 배열 선언자와 같은 표준 C 선언자를 지정합니다. 자세한 내용은 배열 및 Sized-Pointer 특성, 배열, 배열 및 포인터를 참조하세요. declarator-list는 쉼표로 구분된 하나 이상의 선언자로 구성됩니다. 함수 선언자의 매개 변수 이름 식별자는 선택 사항입니다.

field-attribute-list

구조체, 공용 구조체 멤버 또는 함수 매개 변수에 적용되는 0개 이상의 필드 특성을 지정합니다. 유효한 두 필드 특성은 [max_is][size_is]입니다. 사용 특성 [string], [ignore], [context_handle], 포인터 특성 [ref], [unique] 또는 [ptr], 공용 구조체 특성 [switch_type]. 여러 필드 특성을 쉼표로 구분합니다.

function-attribute-list

함수에 적용되는 0개 이상의 특성을 지정합니다. 유효한 함수 특성은 [콜백], [로컬]입니다. 포인터 특성 [ref], [unique] 또는 [ptr]; 및 사용 특성 [문자열], [무시][context_handle].

ptr-decl

[string] 특성이 적용되는 선택적 포인터 선언자를 지정합니다. 포인터 선언자는 C에서 사용되는 포인터 선언자와 동일합니다. * 지정자, 한정자(예: far) 및 한정자 const에서 생성됩니다.

function-name

원격 프로시저의 이름을 지정합니다.

parameter-attribute-list

지정된 매개 변수 형식에 적합한 0개 이상의 특성으로 구성됩니다. 매개 변수 특성은 방향 특성 [in][out]을 사용할 수 있습니다. 필드 특성 [max_is][size_is]; 포인터 특성 [ref], [unique] 또는 [ptr]; 및 사용 특성 [context_handle][문자열]. 사용 특성 [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[];

[문자열] 특성은 [first_is], [last_is] 및 [length_is]와 같이 전송된 요소의 범위를 지정하는 특성과 함께 사용할 수 없습니다.

다차원 배열에서 사용되는 경우 [string] 특성이 가장 오른쪽 배열에 적용됩니다.

계산된 문자열을 정의하려면 [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

const

context_handle

열거형

first_is

처리

IDL(인터페이스 정의) 파일

무시

last_is

length_is

로컬

max_is

pointer_default

ptr

Ref

size_is

구조체

switch_type

transmit_as

연합

고유

wchar_t