Записывает отформатированные данные в указанный буфер. Все аргументы преобразуются и копируются в выходной буфер в соответствии с соответствующей спецификацией формата в строке формата. Функция добавляет завершающий символ NULL к символам, которые он записывает, но возвращаемое значение не включает завершающий символ NULL в его число символов.
Буфер, который требуется получить отформатированные выходные данные. Максимальный размер буфера составляет 1 024 байта.
[in] unnamedParam2
Тип: LPCTSTR
Спецификации элементов управления форматированием. Помимо обычных символов ASCII в этой строке отображается спецификация формата для каждого аргумента. Дополнительные сведения о спецификации формата см. в разделе "Примечания".
...
Один или несколько необязательных аргументов. Число и тип параметров аргумента зависят от соответствующих спецификаций элемента управления форматированием в параметре lpFmt.
Возвращаемое значение
Тип: int
Если функция выполнена успешно, возвращаемое значение — это число символов, хранящихся в выходном буфере, а не число завершающих символов NULL.
Если функция завершается ошибкой, возвращаемое значение меньше длины ожидаемого выходных данных. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Строка элемента управления форматированием содержит спецификации формата, определяющие выходной формат аргументов после параметра lpFmt. Спецификации формата, рассмотренные ниже, всегда начинаются с знака процента (%). Если знак процента следует символу, который не имеет значения в качестве поля формата, символ не отформатирован (например, %% создает один символ знака процента).
Строка элемента управления форматом считывается слева направо. При обнаружении первой спецификации формата (если таковой) вызывается значение первого аргумента после преобразования и копирования строки элемента управления форматированием в выходной буфер в соответствии со спецификацией формата. Вторая спецификация формата приводит к преобразованию и копированию второго аргумента и т. д. Если есть больше аргументов, чем спецификации формата, дополнительные аргументы игнорируются. Если для всех спецификаций формата недостаточно аргументов, результаты не определены.
Спецификация формата имеет следующую форму:
[][][0][ширины][.precision]type
Каждое поле — это один символ или число, обозначающее определенный параметр формата. Тип символов, которые отображаются после последнего необязательного поля формата, определяют, интерпретируется ли связанный аргумент как символ, строка или число. Самая простая спецификация формата содержит только знак процента и символ типа (например, %s). Необязательные поля управляют другими аспектами форматирования. Ниже приведены необязательные и обязательные поля и их значения.
Поле
Значение
-
Поставьте выходные данные пустыми или нулями справа, чтобы заполнить ширину поля, оправдывая выходные данные слева. Если это поле опущено, выходные данные заполняются слева, оправдывая его справа.
#
Шестнадцатеричные значения префикса с 0x (строчным регистром) или 0X (верхний регистр).
0
Поставить выходное значение с нулями, чтобы заполнить ширину поля. Если это поле опущено, выходное значение заполняется пустыми пробелами.
ширины
Скопируйте указанное минимальное количество символов в выходной буфер. Поле ширины является ненегтивным целым числом. Спецификация ширины никогда не приводит к усечению значения; Если число символов в выходном значении больше указанной ширины или если поле ширины отсутствует, все символы значения печатаются в соответствии со спецификацией точности.
.точности
Для чисел скопируйте указанное минимальное число цифр в выходной буфер. Если число цифр в аргументе меньше указанной точности, выходное значение заполняется слева с нулями. Значение не усечено, если число цифр превышает указанную точность. Если указанная точность равна 0 или опущена полностью или если период (.) отображается без числа после него, то точность имеет значение 1.
Для строк скопируйте указанное максимальное количество символов в выходной буфер.
типа
Выводит соответствующий аргумент в виде символа, строки или числа. Это поле может быть любым из следующих значений.
c
Один символ. Это значение интерпретируется как тип CHARwsprintfA и введите WCHARwsprintfW. Примечание wsprintf — это макрос, определенный как wsprintfA (Не определен Юникод) или wsprintfW (определенный Юникод).
C
Один символ. Это значение интерпретируется как тип WCHARwsprintfA и введите CHARwsprintfW. Примечание wsprintf — это макрос, определенный как wsprintfA (Не определен Юникод) или wsprintfW (определенный Юникод).
d
Целое число со знаком с десятичным знаком. Это значение эквивалентно i.
hc, hC
Один символ. Если символ имеет числовое значение нуля, оно игнорируется.
Это значение всегда интерпретируется как тип CHAR, даже если вызывающее приложение определяет Юникод.
hd
Подписанный короткий целочисленный аргумент.
hs, hS
Струна. Это значение всегда интерпретируется как тип LPSTR, даже если вызывающее приложение определяет Юникод.
hu
Без знака короткое целое число.
i
Целое число со знаком с десятичным знаком. Это значение эквивалентно d.
Ix, IX
64-разрядное шестнадцатеричное целое число без знака в нижнем регистре или верхнем регистре на 64-разрядных платформах, 32-разрядное шестнадцатеричное целое число без знака в нижнем или верхнем регистре на 32-разрядных платформах.
lc, lC
Один символ. Если символ имеет числовое значение нуля, оно игнорируется.
Это значение всегда интерпретируется как тип WCHAR, даже если вызывающее приложение определяет Юникод.
ld
Длинное целое число со знаком. Это значение эквивалентно li.
li
Длинное целое число со знаком. Это значение эквивалентно ld.
ls, lS
Струна. Это значение всегда интерпретируется как тип LPWSTR, даже если вызывающее приложение не определяет Юникод. Это значение эквивалентно ws.
lu
Длинное целое число без знака.
lx, lX
Длинное шестнадцатеричное целое число без знака в нижнем или верхнем регистре.
p
Указатель. Адрес печатается с помощью шестнадцатеричного.
s
Струна. Это значение интерпретируется как тип LPSTRwsprintfA и тип LPWSTRwsprintfW. Примечание wsprintf — это макрос, определенный как wsprintfA (Не определен Юникод) или wsprintfW (определенный Юникод).
S
Струна. Это значение интерпретируется как тип LPWSTRwsprintfA и типом LPSTRwsprintfW. Примечание wsprintf — это макрос, определенный как wsprintfA (Не определен Юникод) или wsprintfW (определенный Юникод).
u
Незначимый целочисленный аргумент.
x, X
Шестнадцатеричное целое число без знака в нижнем или верхнем регистре.
Примечание Важно отметить, что wsprintf использует соглашение о вызовах C (_cdecl), а не стандартное соглашение о вызове (_stdcall) . В результате вызов процесса вызова вызывает всплывающие аргументы из стека, а аргументы отправляются в стек справа налево. В модулях языка C компилятор C выполняет эту задачу.
Чтобы использовать буферы размером более 1024 байт, используйте _snwprintf. Дополнительные сведения см. в документации по библиотеке времени выполнения C.
Заметка
Заголовок winuser.h определяет wsprintf как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование
Ценность
минимальные поддерживаемые клиентские
Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер
Windows 2000 Server [только классические приложения]