Share via


LoadStringA 함수(winuser.h)

지정된 모듈과 연결된 실행 파일에서 문자열 리소스를 로드하고 문자열을 종료 null 문자가 있는 버퍼에 복사하거나 문자열 리소스 자체에 대한 읽기 전용 포인터를 반환합니다.

구문

int LoadStringA(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPSTR     lpBuffer,
  [in]           int       cchBufferMax
);

매개 변수

[in, optional] hInstance

형식: HINSTANCE

실행 파일에 문자열 리소스가 포함된 모듈의 instance 대한 핸들입니다. 애플리케이션 자체에 대한 핸들을 얻으려면 NULL을 사용하여 GetModuleHandle 함수를 호출합니다.

[in] uID

형식: UINT

로드할 문자열의 식별자입니다.

[out] lpBuffer

형식: LPTSTR

문자열을 받을 버퍼입니다. 크기가 cchBufferMax 이상이어야 합니다.

[in] cchBufferMax

형식: int

버퍼의 크기(문자)입니다. 문자열이 잘리고 지정된 문자 수보다 긴 경우 null로 종료됩니다. 이 매개 변수는 0이 될 수 없습니다.

반환 값

형식: int

함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 버퍼에 복사된 문자 수입니다.

문자열 리소스가 없으면 반환 값은 0입니다.

확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

LoadStringW 함수와 달리 LoadStringA 함수는 cchBufferMax에 값 0을 전달하는 것을 지원하지 않습니다. 이렇게 하면 메모리가 손상됩니다.

보안 설명

이 함수를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 잘못된 사용에는 cchBufferMax 매개 변수에서 잘못된 크기를 지정하는 것이 포함됩니다. 예를 들어 lpBuffer가 로 TCHAR szBuffer[100]선언된 버퍼 szBuffer를 가리키는 경우 sizeof(szBuffer)는 버퍼의 크기를 바이트 단위로 제공하므로 함수의 유니코드 버전에 대한 버퍼 오버플로가 발생할 수 있습니다. 버퍼 오버플로 상황은 애플리케이션에서 많은 보안 문제의 원인입니다. 이 경우 또는 sizeof(szBuffer)/sizeof(szBuffer[0]) 를 사용하여 sizeof(szBuffer)/sizeof(TCHAR) 버퍼의 적절한 크기를 제공합니다.

예제

예제는 자식 창 만들기를 참조하세요.

참고

winuser.h 헤더는 LOADString을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll

추가 정보

개념

FormatMessage

LoadAccelerators

LoadBitmap

LoadCursor

LoadIcon

LoadMenu

LoadMenuIndirect

기타 리소스

참조

문자열