다음을 통해 공유


SetDllDirectoryA 함수(winbase.h)

애플리케이션의 DLL을 찾는 데 사용되는 검색 경로에 디렉터리를 추가합니다.

구문

BOOL SetDllDirectoryA(
  [in, optional] LPCSTR lpPathName
);

매개 변수

[in, optional] lpPathName

검색 경로에 추가할 디렉터리입니다. 이 매개 변수가 빈 문자열("")인 경우 호출은 기본 DLL 검색 순서에서 현재 디렉터리를 제거합니다. 이 매개 변수가 NULL이면 함수는 기본 검색 순서를 복원합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

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

설명

SetDllDirectory 함수는 LoadLibrary 및 LoadLibraryEx 함수에 대한 모든 후속 호출에 영향을 줍니다. 또한 지정된 디렉터리가 검색 경로에 있는 동안 안전한 DLL 검색 모드를 효과적으로 사용하지 않도록 설정합니다.

참고

패키지 또는 보호된 프로세스를 실행 하지 않는 Win32 프로세스의 경우 이 함수를 호출하면 함수를 호출한 프로세스에서 시작된 자식 프로세스의 DLL 검색 순서에도 영향을 미칩니다.

SetDllDirectory를 호출한 후 표준 DLL 검색 경로는 다음과 같습니다.

  1. 애플리케이션이 로드된 디렉터리입니다.
  2. lpPathName 매개 변수로 지정된 디렉터리입니다.
  3. 시스템 디렉터리입니다. GetSystemDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다. 이 디렉터리의 이름은 System32입니다.
  4. 16비트 시스템 디렉터리입니다. 이 디렉터리의 경로를 가져오는 함수는 없지만 검색됩니다. 이 디렉터리의 이름은 System입니다.
  5. Windows 디렉터리입니다. GetWindowsDirectory 함수를 사용하여 이 디렉터리의 경로를 가져옵니다.
  6. PATH 환경 변수에 나열된 디렉터리입니다.
SetDllDirectory 함수가 호출될 때마다 이전 SetDllDirectory 호출에 지정된 디렉터리를 대체합니다. 둘 이상의 디렉터리를 지정하려면 AddDllDirectory 함수를 사용하고 LOAD_LIBRARY_SEARCH_USER_DIRS LoadLibraryEx 를 호출합니다.

LoadLibrary 및 LoadLibraryEx에서 사용하는 표준 검색 경로로 되돌리기 NULL을 사용하여 SetDllDirectory를 호출합니다. 또한 SafeDllSearchMode 레지스트리 값을 기반으로 안전한 DLL 검색 모드를 복원합니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0502 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.

참고

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista, WINDOWS XP SP1 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

AddDllDirectory

동적 연결 라이브러리 검색 순서

GetDllDirectory

GetSystemDirectory

GetWindowsDirectory

LoadLibrary

LoadLibraryEx