GetModuleFileNameA 함수(libloaderapi.h)
지정된 모듈을 포함하는 파일의 정규화된 경로를 검색합니다. 모듈은 현재 프로세스에 의해 로드되어 있어야 합니다.
다른 프로세스에서 로드한 모듈의 파일을 찾으려면 GetModuleFileNameEx 함수를 사용합니다.
통사론
DWORD GetModuleFileNameA(
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
매개 변수
[in, optional] hModule
경로가 요청되는 로드된 모듈에 대한 핸들입니다. 이 매개 변수가 NULL
GetModuleFileName 함수는 LOAD_LIBRARY_AS_DATAFILE 플래그를 사용하여 로드된 모듈의 경로를 검색하지 않습니다. 자세한 내용은 LoadLibraryEx참조하세요.
[out] lpFilename
모듈의 정규화된 경로를 수신하는 버퍼에 대한 포인터입니다. 경로 길이가 nSize 매개 변수가 지정한 크기보다 작으면 함수가 성공하고 경로가 null로 끝나는 문자열로 반환됩니다.
경로 길이가
반환된 문자열은 모듈을 로드할 때 지정한 것과 동일한 형식을 사용합니다. 따라서 경로는 짧거나 긴 파일 이름이 될 수 있으며 접두사 \\?\
사용할 수 있습니다. 자세한 내용은 파일이름 지정
[in] nSize
TCHARlpFilename 버퍼의 크기입니다.
반환 값
함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 버퍼에 복사되는 문자열의 길이(문자)입니다. 버퍼가 너무 작아 모듈 이름을 보유할 수 없는 경우 문자열은 null 종료 문자를 포함하여 nSize 문자를
함수가 실패하면 반환 값은 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 |
참고 항목
GetModuleFileNameEx
GetModuleHandle
LoadLibrary
LoadLibraryEx