응용 프로그램이 DLL과 정적으로 연결되면 응용 프로그램은 다음을 찾을 것으로 예상합니다. 자체 디렉터리에 DLL이 있습니다. 그러나 DLL이 다른 위치에 있으면 애플리케이션이 이를 로드하지 못합니다.
방법 1: 종속성 로드
DLL을 정적으로 연결하는 대신 LoadLibrary() 및 GetProcAddress()를 사용하여 동적 로딩을 사용하세요. 이렇게 하면 애플리케이션이 지정된 경로에서 DLL을 로드할 수 있습니다.
방법 2: PATH 환경 변수 수정
DLL 위치에 대한 경로를 PATH 환경 변수에 추가합니다. . 이렇게 하면 PATH 변수를 사용하여 검색하는 모든 애플리케이션에서 DLL에 액세스할 수 있습니다.
방법 3: 지연 로드 메커니즘
다음을 기반으로 DLL을 로드하는 사용자 정의 도우미 함수를 구현합니다. 제공된 경로. 이렇게 하면 애플리케이션에 필요할 때까지 DLL 로드가 지연됩니다.
방법 4: 어셈블리 매니페스트
DLL 폴더에 매니페스트 파일을 생성하고 해당 폴더를 어셈블리로 지정하고 DLL을 나열합니다. #pragma 주석 지시문을 사용하여 애플리케이션의 종속성 매니페스트에 이 어셈블리를 추가합니다.
방법 5: Stub Executable 및 SetDllDirectory
DLL 검색 경로를 설정하는 스텁 실행 파일을 만듭니다. 실제 애플리케이션을 DLL로 로드하기 전에 SetDllDirectory()를 사용하여 DLL 위치에 추가합니다.
위 내용은 정적으로 연결된 DLL에 대한 DLL 검색 경로를 변경하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!