Функция LoadStringA (winuser.h)
Загружает строковый ресурс из исполняемого файла, связанного с указанным модулем, и либо копирует строку в буфер с завершающим символом NULL, либо возвращает указатель только для чтения на сам строковый ресурс.
Синтаксис
int LoadStringA(
[in, optional] HINSTANCE hInstance,
[in] UINT uID,
[out] LPSTR lpBuffer,
[in] int cchBufferMax
);
Параметры
[in, optional] hInstance
Тип: HINSTANCE
Дескриптор экземпляра модуля, исполняемый файл которого содержит строковый ресурс. Чтобы получить дескриптор для самого приложения, вызовите функцию GetModuleHandle со значением NULL.
[in] uID
Тип: UINT
Идентификатор загружаемой строки.
[out] lpBuffer
Тип: LPTSTR
Буфер для получения строки. Размер должен быть не менее символов cchBufferMax .
[in] cchBufferMax
Тип: int
Размер буфера в символах. Строка усечена и заканчивается значением NULL, если она превышает указанное число символов. Значение этого параметра не может быть равно нулю.
Возвращаемое значение
Тип: int
Если функция выполняется успешно, возвращаемое значение — это количество символов, скопированных в буфер, не включая завершающий символ NULL.
Если строковый ресурс не существует, возвращаемое значение равно нулю.
Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
В отличие от функции LoadStringW , функция LoadStringA не поддерживает передачу значения нуля для cchBufferMax. Это приведет к повреждению памяти.
Примечания по безопасности
Неправильное использование этой функции может поставить под угрозу безопасность приложения. Неправильное использование включает указание неправильного размера в параметре cchBufferMax . Например, если lpBuffer указывает на буфер szBuffer , который объявлен какTCHAR szBuffer[100]
, то sizeof(szBuffer) задает размер буфера в байтах, что может привести к переполнению буфера для версии Функции в Юникоде. Ситуации переполнения буфера являются причиной многих проблем безопасности в приложениях. В этом случае использование sizeof(szBuffer)/sizeof(TCHAR)
или sizeof(szBuffer)/sizeof(szBuffer[0])
даст правильный размер буфера.
Примеры
Пример см. в разделе Создание дочернего окна.
Примечание
Заголовок winuser.h определяет LoadString в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы