다음을 통해 공유


wsprintfW 함수(winuser.h)

지정된 버퍼에 서식이 지정된 데이터를 씁니다. 모든 인수는 형식 문자열의 해당 형식 사양에 따라 변환되고 출력 버퍼로 복사됩니다. 함수는 쓰는 문자에 종료 null 문자를 추가하지만 반환 값에는 종료 null 문자가 해당 문자 수에 포함되지 않습니다.

참고 사용하지 마세요. 대신 StringCbPrintf, StringCbPrintfEx, StringCchPrintf또는 StringCchPrintfEx중 하나를 사용하는 것이 좋습니다. 보안 고려 사항을 참조하세요.
 

통사론

int WINAPIV wsprintfW(
  [out] LPWSTR  unnamedParam1,
  [in]  LPCWSTR unnamedParam2,
        ...     
);

매개 변수

[out] unnamedParam1

형식: LPTSTR

형식이 지정된 출력을 받을 버퍼입니다. 버퍼의 최대 크기는 1,024바이트입니다.

[in] unnamedParam2

형식: LPCTSTR

형식 제어 사양입니다. 일반 ASCII 문자 외에도 각 인수에 대한 형식 사양이 이 문자열에 나타납니다. 형식 사양에 대한 자세한 내용은 설명 섹션을 참조하세요.

...

하나 이상의 선택적 인수입니다. 인수 매개 변수의 수와 형식은 lpFmt 매개 변수의 해당 형식 제어 사양에 따라 달라집니다.

반환 값

형식: int

함수가 성공하면 반환 값은 종료 null 문자를 계산하지 않고 출력 버퍼에 저장된 문자 수입니다.

함수가 실패하면 반환 값이 예상 출력의 길이보다 작습니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.

발언

format-control 문자열에는 lpFmt 매개 변수 다음 인수의 출력 형식을 결정하는 형식 사양이 포함되어 있습니다. 아래에서 설명하는 형식 사양은 항상 백분율 기호(%)로 시작합니다. 백분율 기호 뒤에 서식 필드로 의미가 없는 문자가 있으면 문자의 서식이 지정되지 않습니다(예: 단일 백분율 기호 문자를 생성하는 %%).

형식 제어 문자열은 왼쪽에서 오른쪽으로 읽습니다. 첫 번째 형식 사양(있는 경우)이 발생하면 형식 제어 문자열 이후의 첫 번째 인수 값이 형식 사양에 따라 변환되어 출력 버퍼에 복사됩니다. 두 번째 형식 사양을 사용하면 두 번째 인수가 변환 및 복사되는 등의 작업을 할 수 있습니다. 형식 사양보다 더 많은 인수가 있는 경우 추가 인수는 무시됩니다. 모든 형식 사양에 대한 인수가 충분하지 않으면 결과가 정의되지 않습니다.

형식 사양의 형식은 다음과 같습니다.

%[-][#][0][너비][.precision]형식

각 필드는 특정 서식 옵션을 나타내는 단일 문자 또는 숫자입니다. 형식은 마지막 선택적 형식 필드 다음에 나타나는 문자 연결된 인수가 문자, 문자열 또는 숫자로 해석되는지 여부를 결정합니다. 가장 간단한 형식 사양에는 백분율 기호와 형식 문자(예: %s)만 포함됩니다. 선택적 필드는 서식의 다른 측면을 제어합니다. 다음은 선택적 필드와 필수 필드 및 해당 의미입니다.

의미
- 출력을 오른쪽에 공백이나 0으로 채워 필드 너비를 채우면 출력이 왼쪽으로 맞춤됩니다. 이 필드를 생략하면 출력이 왼쪽에 패딩되어 오른쪽에 맞습니다.
# 접두사 16진수 값은 0x(소문자) 또는 0X(대문자)입니다.
0 필드 너비를 채우려면 출력 값을 0으로 채웁니다. 이 필드를 생략하면 출력 값에 빈 공백이 채워집니다.
너비 지정된 최소 문자 수를 출력 버퍼에 복사합니다. 너비 필드는 음수가 아닌 정수입니다. 너비 사양으로 인해 값이 잘리지 않습니다. 출력 값의 문자 수가 지정된 너비보다 크거나 너비 필드가 없으면 전체 자릿수 사양에 따라 값의 모든 문자가 인쇄됩니다.
. 전체 자릿수 숫자의 경우 지정된 최소 자릿수를 출력 버퍼에 복사합니다. 인수의 자릿수가 지정된 전체 자릿수보다 작으면 출력 값은 왼쪽에 0으로 채워집니다. 숫자 수가 지정된 전체 자릿수를 초과하면 값이 잘리지 않습니다. 지정한 전체 자릿수가 0이거나 완전히 생략되거나 마침표(.)가 다음 숫자 없이 나타나면 전체 자릿수가 1로 설정됩니다.

문자열의 경우 지정된 최대 문자 수를 출력 버퍼에 복사합니다.

형식 해당 인수를 문자, 문자열 또는 숫자로 출력합니다. 이 필드는 다음 값 중 어느 것이든 될 수 있습니다.
c
단일 문자입니다. 이 값은 wsprintfA CHAR 형식으로 해석되고 wsprintfWWCHAR 형식으로 해석됩니다. 참고 wsprintfwsprintfA(유니코드가 정의되지 않음) 또는 wsprintfW(유니코드 정의)로 정의된 매크로입니다.
C
단일 문자입니다. 이 값은 wsprintfA WCHAR 형식으로 해석되고 wsprintfWCHAR 형식으로 해석됩니다. 참고 wsprintfwsprintfA(유니코드가 정의되지 않음) 또는 wsprintfW(유니코드 정의)로 정의된 매크로입니다.
d
부가된 10진수 정수입니다. 이 값은 i동일합니다.
hc, hC
단일 문자입니다. 문자의 숫자 값이 0이면 무시됩니다. 호출 애플리케이션이 유니코드를 정의하는 경우에도 이 값은 항상 CHAR형식으로 해석됩니다.
hd
부가적인 정수 인수입니다.
hs, hS
문자열. 이 값은 호출 애플리케이션이 유니코드를 정의하는 경우에도 항상 LPSTR형식으로 해석됩니다.
hu
부호 없는 짧은 정수입니다.
i
부가된 10진수 정수입니다. 이 값은 d동일합니다.
Ix, IX
64비트 플랫폼의 소문자 또는 대문자로 된 64비트 부호 없는 16진수 정수, 32비트 플랫폼의 소문자 또는 대문자로 된 32비트 부호 없는 16진수 정수입니다.
lc, lC
단일 문자입니다. 문자의 숫자 값이 0이면 무시됩니다. 이 값은 호출 애플리케이션이 유니코드를 정의하는 경우에도 항상 WCHAR형식으로 해석됩니다.
ld
긴 부인 정수입니다. 이 값은 li동일합니다.
li
긴 부인 정수입니다. 이 값은 ld동일합니다.
ls, lS
문자열. 호출 애플리케이션이 유니코드를 정의하지 않는 경우에도 이 값은 항상 LPWSTR형식으로 해석됩니다. 이 값은 ws동일합니다.
lu
부호 없는 긴 정수입니다.
lx, lX
긴 부호 없는 16진수 정수(소문자 또는 대문자)입니다.
p
포인터. 주소는 16진수로 인쇄됩니다.
s
문자열. 이 값은 wsprintfA LPSTR 형식으로 해석되고 wsprintfWLPWSTR 형식으로 해석됩니다. 참고 wsprintfwsprintfA(유니코드가 정의되지 않음) 또는 wsprintfW(유니코드 정의)로 정의된 매크로입니다.
S
문자열. 이 값은 wsprintfA 형식으로 해석되고 wsprintfWLPSTR 형식으로 해석됩니다. 참고 wsprintfwsprintfA(유니코드가 정의되지 않음) 또는 wsprintfW(유니코드 정의)로 정의된 매크로입니다.
u
부호 없는 정수 인수입니다.
x, X
부호 없는 16진수 정수(소문자 또는 대문자)입니다.
 
참고wsprintf 표준 호출(_stdcall) 호출 규칙 대신 C 호출 규칙(_cdecl)을 사용한다는 점에 유의해야 합니다. 따라서 인수를 스택에서 팝하는 것은 호출 프로세스의 책임이며 인수는 스택에서 오른쪽에서 왼쪽으로 푸시됩니다. C 언어 모듈에서 C 컴파일러는 이 작업을 수행합니다.
 
1024바이트보다 큰 버퍼를 사용하려면 _snwprintf사용합니다. 자세한 내용은 C 런타임 라이브러리에 대한 설명서를 참조하세요.

메모

winuser.h 헤더는 wsprintf를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

참고 항목

개념

참조

StringCbPrintf

StringCbPrintfEx

StringCbVPrintf

StringCbVPrintfEx

StringCchPrintf

StringCchPrintfEx

StringCchVPrintf

StringCchVPrintfEx

문자열

wvsprintf