Функция LoadStringA (winuser.h)
Загружает строковый ресурс из исполняемого файла, связанного с указанным модулем, и копирует строку в буфер с завершающим символом NULL или возвращает указатель только для чтения на сам ресурс строки.
Синтаксис
int LoadStringA(
[in, optional] HINSTANCE hInstance,
[in] UINT uID,
[out] LPSTR lpBuffer,
[in] int cchBufferMax
);
Параметры
[in, optional] hInstance
Тип: HINSTANCE
Дескриптор экземпляра модуля, исполняемый файл которого содержит строковый ресурс. Чтобы получить дескриптор самого приложения, вызовите функцию GetModuleHandle
[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 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
См. также
концептуальные
LoadCursor
другие ресурсы
Справочник