다음을 통해 공유


GetModuleFileNameW 함수(libloaderapi.h)

지정된 모듈을 포함하는 파일의 정규화된 경로를 검색합니다. 모듈은 현재 프로세스에 의해 로드되어 있어야 합니다.

다른 프로세스에서 로드한 모듈의 파일을 찾으려면 GetModuleFileNameEx 함수를 사용합니다.

통사론

DWORD GetModuleFileNameW(
  [in, optional] HMODULE hModule,
  [out]          LPWSTR  lpFilename,
  [in]           DWORD   nSize
);

매개 변수

[in, optional] hModule

경로가 요청되는 로드된 모듈에 대한 핸들입니다. 이 매개 변수가 NULL경우 GetModuleFileName 현재 프로세스의 실행 파일 경로를 검색합니다.

GetModuleFileName 함수는 LOAD_LIBRARY_AS_DATAFILE 플래그를 사용하여 로드된 모듈의 경로를 검색하지 않습니다. 자세한 내용은 LoadLibraryEx참조하세요.

[out] lpFilename

모듈의 정규화된 경로를 수신하는 버퍼에 대한 포인터입니다. 경로 길이가 nSize 매개 변수가 지정한 크기보다 작으면 함수가 성공하고 경로가 null로 끝나는 문자열로 반환됩니다.

경로 길이가 nSize 매개 변수가 지정하는 크기를 초과하면 함수가 성공하고 null 종료 문자를 포함하여 nSize 문자를 문자열이 잘립니다.

Windows XP: 문자열은 nSize 문자를 잘리며 null로 종료되지 않습니다.

반환된 문자열은 모듈을 로드할 때 지정한 것과 동일한 형식을 사용합니다. 따라서 경로는 길거나 짧은 파일 이름이 될 수 있으며 접두사 "\?"를 사용할 수 있습니다. 자세한 내용은 파일이름 지정 참조하세요.

[in] nSize

WCHARlpFilename 버퍼의 크기입니다.

반환 값

함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 버퍼에 복사되는 문자열의 길이(문자)입니다. 버퍼가 너무 작아 모듈 이름을 보유할 수 없는 경우 문자열은 null 종료 문자를 포함하여 nSize 문자를 잘리고, 함수는 nSize반환하고, 함수는 마지막 오류를 ERROR_INSUFFICIENT_BUFFER설정합니다.

Windows XP: 버퍼가 너무 작아 모듈 이름을 저장할 수 없는 경우 함수는 nSize 반환하고 마지막 오류 코드는 수정되지 않습니다. nSize 0이면 반환 값이 0이고 마지막 오류 코드가 수정되지 않습니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.

발언

DLL이 두 프로세스에 로드되는 경우 한 프로세스의 파일 이름이 다른 프로세스의 파일 이름과 다를 수 있습니다.

전역 변수 _pgmptr 실행 파일의 전체 경로로 자동으로 초기화되며 실행 파일의 전체 경로 이름을 검색하는 데 사용할 수 있습니다.

예제

예를 들어 서비스설치를 참조하세요.

메모

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

요구 사항

요구
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 libloaderapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

Dynamic-Link 라이브러리 함수

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx