CHString::Format(UINT,...) 메서드(chstring.h)

[CHString 클래스는 현재 최종 상태로 간주되는 WMI 공급자 프레임워크의 일부로, 이 라이브러리에 영향을 미치는 보안과 관련되지 않은 문제에 대해서는 더 이상 개발, 개선 또는 업데이트가 이루어지지 않습니다. MI API는 모든 새 개발에 사용해야 합니다.]

Format 메서드는 일련의 문자와 값을 CHString 문자열에 형식을 지정하고 저장합니다.

구문

void  throw(CHeap_Exception) Format(
  UINT nFormatID,
  ...  
);

매개 변수

nFormatID

형식 제어 문자열을 포함하는 문자열 리소스 식별자입니다.

...

인수 목록입니다.

반환 값

CHeap_Exception

설명

각 선택적 인수(있는 경우)는 lpszFormat의 해당 형식 사양 또는 nFormatID로 식별된 문자열 리소스에 따라 변환되고 출력됩니다.

참고 보안 공격에 대한 노출을 줄이려면 항상 Format에 형식 문자열을 사용합니다. 예를 들어 Format(input) 은 악용할 수 있으며 Format("%s", input) 은 악용할 수 없습니다. 형식 문자열에 사용자 제공 문자열을 사용하지 마세요. 형식 문자열이 지역화와 같은 용도로 저장되는 경우 권한이 없는 쓰기 액세스로부터 문자열을 보호해야 합니다. 함수가 표준 출력이 아닌 문자열에 쓰는 경우 형식 문자열에서 후행 "%s"을 사용하지 않도록 해야 할 수 있습니다.

문자열 개체가 Format에 대한 매개 변수로 제공되면 호출이 실패합니다. 예를 들어 다음 코드로 인해 예측할 수 없는 결과가 발생합니다.

예제

CHString str = L"Some Data";

// Attention: str is also used in the parameter list.
str.Format(L"%s%d", str, 123);

참고 문자열을 선택적 인수로 전달하는 경우 명시적으로 LPCWSTR로 캐스팅해야 합니다. format 인수는 printf 함수에 대한 format 인수와 동일한 형식 및 함수를 가합니다. NULL 문자가 작성된 문자의 끝에 추가됩니다.

요구 사항

요구 사항
헤더 chstring.h

추가 정보

CHString

CHString::GetBuffer