Share via


LoadStringW 함수(winuser.h)

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

구문

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

매개 변수

[in, optional] hInstance

형식: HINSTANCE

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

[in] uID

형식: UINT

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

[out] lpBuffer

형식: LPTSTR

문자열을 받을 버퍼( cchBufferMax 가 0이 아닌 경우) 또는 문자열 리소스 자체에 대한 읽기 전용 포인터입니다( cchBufferMax 가 0인 경우). 포인터를 보유하기에 충분한 길이여야 합니다(8바이트).

[in] cchBufferMax

형식: int

버퍼의 크기(문자)입니다. 문자열이 잘리고 지정된 문자 수보다 긴 경우 null로 종료됩니다. 이 매개 변수가 0이면 lpBuffer 는 문자열 리소스 자체에 대한 읽기 전용 포인터를 받습니다.

반환 값

형식: int

함수가 성공하면 반환 값은 다음 중 하나입니다.

  • 종료 null 문자를 포함하지 않고 버퍼에 복사된 문자 수( cchBufferMax 가 0이 아닌 경우)입니다.
  • lpBuffer가 가리키는 문자열 리소스의 문자 수입니다(cchBufferMax가 0인 경우). 문자열 리소스가 모듈의 리소스 테이블에서 null로 종료되는 것을 보장하지 않으며 이 값을 사용하여 문자열 리소스가 끝나는 위치를 확인할 수 있습니다.
  • 문자열 리소스가 없으면 0입니다.

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

설명

lpBuffer 매개 변수의 문자열 리소스에 대한 읽기 전용 포인터를 반환하기 위해 cchBufferMax 에 0 전달하는 경우 반환 값의 문자 수를 사용하여 문자열 리소스의 길이를 결정합니다. 문자열 리소스는 모듈의 리소스 테이블에서 null로 종료되도록 보장되지 않습니다. 그러나 리소스 테이블에는 null 문자가 포함될 수 있습니다. 문자열 리소스는 16개의 문자열 블록에 저장되며 블록 내의 빈 슬롯은 null 문자로 표시됩니다.

보안 설명

이 함수를 잘못 사용하면 애플리케이션의 보안이 손상됩니다. 잘못된 사용에는 nBufferMax 매개 변수에 잘못된 크기를 지정하는 것이 포함됩니다. 예를 들어 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

기타 리소스

참조

문자열