Поделиться через


Функция 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

См. также раздел

Основные понятия

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

Другие ресурсы

Справочные материалы

Строки