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

런타임에 지연된 DLL 로드를 제어하는 링커 옵션입니다.

구문

/DELAY:UNLOAD
/DELAY:NOBIND

설명

/DELAY 옵션은 지연된 DLL 로드를 제어합니다.

  • 한정자는 /DELAY:UNLOAD DLL의 명시적 언로드를 지원하도록 지연 로드 도우미 함수에 지시합니다. IAT(가져오기 주소 테이블)는 원래 폼으로 다시 설정되어 IAT 포인터를 무효화하고 해당 포인터를 덮어쓰게 합니다.

    선택 /DELAY:UNLOAD하지 않으면 호출이 __FUnloadDelayLoadedDLL 실패합니다.

  • /DELAY:NOBIND 한정자는 링커에게 최종 이미지에 바인딩 가능한 IAT를 포함하지 않도록 지시합니다. 기본값은 지연 로드된 DLL에 대해 바인딩할 수 있는 IAT를 만드는 것입니다. 결과 이미지는 정적으로 바인딩할 수 없습니다. (바인딩 가능한 IAT가 있는 이미지는 실행 전에 정적으로 바인딩될 수 있습니다.) 자세한 내용은 을 참조하세요 /BIND.

    DLL이 바인딩된 경우 도우미 함수는 참조된 각 가져오기를 호출 GetProcAddress 하는 대신 바인딩된 정보를 사용하려고 시도합니다. 타임스탬프 또는 기본 설정 주소가 로드된 DLL의 주소와 일치하지 않는 경우 도우미 함수는 바인딩된 IAT가 만료된 것으로 가정합니다. 바인딩된 IAT가 없는 것처럼 계속됩니다.

    /DELAY:NOBIND 는 프로그램 이미지가 더 커지지만 DLL의 로드 시간을 단축할 수 있습니다. DLL /DELAY:NOBIND 을 바인딩하지 않으려는 경우 바인딩된 IAT가 생성되지 않도록 합니다.

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

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

  1. 프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 컴파일러 및 빌드 속성 설정을 참조 하세요.

  2. 구성 속성>링커>고급 속성 페이지를 선택합니다.

  3. 언로드 지연 로드된 DLL 속성 또는 바인딩되지 않은 지연 로드된 DLL 속성을 수정합니다. 확인을 선택하거나 적용하여 변경 내용을 저장합니다.

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

참고 항목

MSVC 링커 참조
MSVC 링커 옵션