Функция wvsprintf


Функция wvsprintf форматирует и хранит ряд символов и значений в буфере. Элементы указанные при помощи списка параметров преобразуются и копируются в буфер выводимых данных согласно соответствующей спецификации формата в строке управления форматом. Функция добавляет в конец символ завершающего нуля к символам, которые она пишет, но возвращаемое значение не включает в себя символ завершающего нуля в это число символов.

Синтаксис

int wvsprintf(      

    LPTSTR lpOutput,
    LPCTSTR lpFmt,
    va_list arglist
);

Параметры

lpOutput

[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.
Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz