정적으로 연결된 DLL에 대한 DLL 검색 경로 사용자 정의
DLL을 정적 링크하면 DLL이 실행 파일에 통합되지만 기본 검색 경로는 DLL이 실제 위치와 일치하지 않을 수 있습니다. 이 문제를 해결하기 위해 다음을 포함하여 검색 경로를 변경하는 다양한 접근 방식이 있습니다.
-
동적 로딩: LoadLibrary("plugins/Plugin.dll") 및 GetProcAddress를 사용하여 플러그인에 액세스 기능을 사용하므로 정적 링크가 필요하지 않습니다.
-
환경 수정: 플러그인 폴더 경로를 시스템의 PATH 환경 변수에 추가하면 애플리케이션이 해당 폴더 내에서 DLL을 찾을 수 있습니다.
-
로드 지연: 필요할 때까지 플러그인 액세스를 연기하는 지연 로드 메커니즘을 활용하여 지정된 경로로 DLL을 로드하는 사용자 지정 도우미 함수를 생성할 수 있습니다.
-
어셈블리 변환:plugins.dll을 나열하는 .manifest 파일을 생성하여 플러그인 폴더를 어셈블리로 변환합니다. "플러그인"을 애플리케이션의 종속 어셈블리로 표시하여 어셈블리 내에서 DLL을 검색하도록 지시합니다.
-
DLL 경로 조작을 사용한 스텁 실행: 애플리케이션을 스텁 실행 파일로 나누고 동적으로 로드되는 구성 요소입니다. 스텁 실행 파일에서 SetDllDirectory를 호출하여 플러그인 폴더 경로를 지정하고 LoadLibrary를 호출하여 전체 경로를 사용하여 실제 플러그인 DLL을 로드합니다.
위 내용은 정적으로 연결된 DLL에 대한 DLL 검색 경로를 사용자 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!