현재 DLL이 필요한 SDL로 C++ 응용 프로그램을 개발 중입니다. 현재는 프로그램과 동일한 폴더에 DLL 만 있습니다. "libs"라는 하위 디렉토리에서 프로그램 검색을 수행하려면 어떻게해야합니까?C++ DLL 위치 검색
답변
로드 시간 연결을 사용하는 경우 DLL 검색 경로에 DLL이 있어야합니다. 여기에 문서화되어 있습니다 : Dynamic-Link Library Search Order. 일반적으로이 경우 DLL 폴더를 PATH
환경 변수에 추가해야합니다. 이제 환경 변수 PATH
에 폴더를 추가하는 것이 문제의 중량 솔루션입니다. 당신은 분명히 그렇게하고 싶지 않습니다.
반면에 런타임 연결로 전환하면 DLL의 전체 경로를 LoadLibrary
으로 전달할 수 있습니다. GetModuleFileName
을 호출하여 실행 파일의 파일 이름을 찾은 다음 디렉토리를 빼고 \libs\MyDll.dll
을 추가 할 수 있습니다. 그러나 런타임 연결의 가장 큰 단점은 가져 오는 각 함수에 GetProcAddress
을 사용해야한다는 것입니다.
이러한 옵션 중 어느 것도 특히 매력적이지 않습니다. 내 조언은 제안 된 디자인을 변경하는 것입니다. 실행 파일이 필요로하는 모든 DLL을 실행 파일과 동일한 디렉토리에 넣으십시오.
Environment Variables
에 dll 폴더 경로를 추가하십시오 (경로가 ;
으로 구분됨에 유의하십시오).
저는 이것을 보편적 인 설정으로하고 싶습니다. 그래서 파일을 배포했다 할지라도, 프로그램은 여전히 dll을 찾을 곳을 알고있을 것입니다. – tVoss42
@ tVoss42 이것은 최소한 PC의 보편적 인 설정이 될 것입니다. – herohuyongtao
- 1. 1.0 MVC 및 DLL 위치
- 2. 강력한 이름 dll 검색
- 3. .Net DLL 대 C++ DLL
- 4. C++ - DLL
- 5. C++ (DLL)
- 6. 설치 프로젝트의 dll 위치 변경
- 7. SVN Nuget DLL 위치 문제
- 8. 위치 검색
- 9. C++ Dll Injection
- 10. 문자 배열에서 C 배열의 위치 검색
- 11. HashMap에서 위치 검색
- 12. SQL Server에서 CLR DLL 검색
- 13. VBScript에서 DLL 메타 데이터 검색?
- 14. netapi32.dll - 특정 명령어 검색
- 15. C++ \\ DLL - DLL 스푸핑을 방지하는 방법은 무엇입니까?
- 16. C# Dll 인젝터, VB.Net Dll 인젝터
- 17. dllimport를 사용하는 C++ dll # C#
- 18. C# 프로그램에서 C DLL 호출
- 19. C#에서 C++ DLL 호출
- 20. C DLL 가져 오기 C#
- 21. C#에서 디버그 C++ dll
- 22. C#에서 C++ dll 사용
- 23. C# DLL 호출 오류 C
- 24. C# 프로젝트에 C++ DLL 추가하기
- 25. C#에서 C++ DLL 호출
- 26. C# DLLImport for C++ dll
- 27. C++ 프로젝트에 c DLL 사용
- 28. C++에서 C# dll 호출
- 29. 코드에 dll 검색 경로를 추가하는 방법은 무엇입니까?
- 30. C# dll 호출 C++ dll 가져 오기 EntryPointNotFoundException
왜 지름길을 만들지 않겠습니까? –
왜 DLL을'C : \ WINDOWS \ system32'에 복사하지 않습니까? –
@KerrekSB, PATH에 복사 할 수도 있습니다. – ManuelH