다음을 통해 공유


/DELAY(가져오기 설정 로드 지연)

/DELAY:UNLOAD
/DELAY:NOBIND

설명

/DELAY 옵션을 사용하여 DLL의 링커의 지연 로드된 DLL 지원을 제어할 수 있습니다.

  • UNLOAD 한정자를 사용하면 지연 로드 도우미 함수는 DLL의 명시적 언로드를 지원하게 됩니다. IAT(가져오기 주소 테이블)는 원래 형식으로 다시 설정되며, IAT 포인터가 무효화되어 덮어쓰여집니다.

    UNLOAD를 선택하지 않으면 모든 FUnloadDelayLoadedDLL 호출이 실패합니다.

  • NOBIND 한정자를 사용하면 링커에서는 바인딩할 수 있는 IAT를 최종 이미지에 포함시키지 않습니다. 기본적으로는 지연 로드된 DLL에 대해 바인딩할 수 있는 IAT가 만들어집니다. 결과 이미지는 정적으로 바인딩될 수 없습니다. 바인딩할 수 있는 IAT가 포함된 이미지는 실행하기 전에 정적으로 바인딩될 수도 있습니다. /BIND를 참조하십시오.

    DLL이 바인딩되어 있는 경우 도우미 함수에서는 참조되는 각 가져오기마다 GetProcAddress를 호출하는 대신 바인딩 정보를 사용합니다. 이 때 타임스탬프나 기본 설정 주소가 로드된 DLL과 일치하지 않으면 도우미 함수는 바인딩된 IAT의 날짜가 지난 것으로 간주하고 바인딩된 IAT가 없는 것처럼 처리합니다.

    NOBIND를 사용하면 프로그램 이미지는 커지지만 DLL 로드 속도가 빨라집니다. DLL을 바인딩하지 않으려는 경우 NOBIND를 사용하면 바인딩된 IAT가 생성되지 않습니다.

로드를 지연할 DLL을 지정하려면 /DELAYLOAD 옵션을 사용합니다.

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual C++ 프로젝트 속성 설정을 참조하십시오.

  2. 링커 폴더를 클릭합니다.

  3. 고급 속성 페이지를 클릭합니다.

  4. 지연 로드된 DLL 속성을 수정합니다.

프로그래밍 방식으로 이 링커 옵션을 설정하려면

참고 항목

참조

링커 옵션 설정

링커 옵션