Функция wvsprintf форматирует и хранит ряд символов и значений в буфере. Элементы указанные при помощи списка параметров преобразуются и копируются в буфер выводимых данных согласно соответствующей спецификации формата в строке управления форматом. Функция добавляет в конец символ завершающего нуля к символам, которые она пишет, но возвращаемое значение не включает в себя символ завершающего нуля в это число символов.
int wvsprintf( LPTSTR lpOutput, LPCTSTR lpFmt, va_list arglist ); |
[out] Указатель на буфер, который получает форматированный вывод данных. Максимальный размер буфера составляет 1024 байта.
lpFmt[in] Указатель на строку с завершающим нулем, которая содержит в себе спецификации управления форматом. В дополнение к обычным символам ASCII спецификация формата для каждого параметра показывается в этой строке. Для получения дополнительной информации о спецификация формата, см. описание функции wsprintf.
arglist[in] Переменная списка параметров; каждый элемент списка указывает параметр для строки управления форматом. Число, тип и интерпретация параметров зависит от соответствующих спецификаций управления форматом в параметре lpFmt.
Если функция завершается успешно, возвращаемое значение - число TCHARs, сохраненных в буфере, не считая символа завершающего нуля. Это относится к байтам для функции версии ANSI или WCHARs для версии Unicode.
Если функция завершается ошибкой, возвращаемое значение меньше, чем длина ожидаемого вывода данных. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Предупреждение защиты! Используя эту функцию неправильно можно поставить под угрозу обеспечение безопасности Вашего приложения. Строка, возвращенная в lpOutput, не гарантирует, что будет ЗАВЕРШЕНА СИМВОЛОМ КОНЦА СТРОКИ ('\0'). Кроме того, избегайте использования формата %s, который может привести к переполнению буфера. Это может привести к отказу от обслуживания, если это заканчивается нарушением прав доступа, или взломщик защиты может вставить туда исполняемый код. Рассмотрите для использования одну из нижеследующих альтернатив: StringCbPrintf, StringCbPrintfEx, StringCbVPrintf, StringCbVPrintfEx, StringCchPrintf, StringCchPrintfEx, StringCchVPrintf, или StringCchVPrintfEx. Перед продолжением Вы должны просмотреть статью Рассмотрение вопроса обеспечения безопасности: Пользовательский интерфейс Windows. |
Функция копирует строку управления форматом в буфер выводимых данных символ за символом, начинающийся с первого символа в строке. Когда она встречается со спецификацией формата в строке, функция извлекает значение следующего доступного параметра (начиная с первого параметра в списке), преобразует это значение в указанный формат и копирует результат в буфер выводимых данных. Функция продолжает копировать символы и развертывает спецификации формата таким образом до тех пор, пока не она достигает конца строки управления форматом. Если имеется больше параметров, чем в спецификации формата, дополнительные параметры игнорируются. Если параметров недостаточно для всех спецификаций формата, результаты не определяются.
Обзор Строки, Функции, используемые строками, StringCbPrintf, StringCbPrintfEx, StringCbVPrintf, StringCbVPrintfEx, StringCchPrintf, StringCchPrintfEx, StringCchVPrintf, StringCchVPrintfEx, wsprintf
Размещение и совместимость wvsprintf |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да версии 3.1 |
е | Windows Me | Да |
н | Windows 98 | Да |
т | Windows 95 | Да |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 3.1 |
в | ||
е | ||
р | ||
Используемая библиотека | User32.lib | |
Используемая DLL | user32.dll | |
Заголовочный файл | ||
- объявлено в | Winuser.h | |
- включено в | Windows.h | |
Unicode | Реализуются как версии Unicode и ANSI. | |
Замечания по платформе | Не имеется |