누락 된 DLL에 대해 불평하는 EXE없이 하위 폴더에 DLL을 저장할 수 있기를 원합니다. "DLL"과 같은 하위 폴더에서 EXE 모양을 만들려면 어떻게해야합니까? 이것과 관련이 있다면, IDE는 Code :: Blocks입니다.C++ 프로그램에서 DLL을 찾는 방법은 무엇입니까?
답변
명시 적로드 (LoadLibrary/GetProcAddress)로이 작업을 수행하기는 쉽습니다. 바인딩 프로세스를 제어하고 LoadLibrary에 전체 경로를 전달하기 만하면됩니다.
암시 적 로딩의 경우 사용자는 시스템을 이용해야합니다. PATH 변수를 늘릴 수는 있지만 매우 엄격합니다. 모든 DLL을 실행 파일과 함께 넣거나 PATH를 수정하는 선택에 직면했을 때, 나는 항상 이전의 것을 선택할 것입니다.
DLL redirection 옵션도 있지만 Microsoft는 리디렉션을 사용하는 대신 실행 파일과 함께 DLL을 배치하는 것이 좋습니다.
고마워요! 이제는 폴더를 깨끗하게 유지할 수 있습니다. 그러나로드가 조금 느립니다. 아마도 EXE 파일 옆에 dll을 넣는 것이 좋습니다. – Ripspace
실행 가능한 권장 사항 옆의 DLL은 보안상의 이유로 사용됩니다. –
매니페스트 또는 리디렉션을 통해이를 수행하는 방법이 있지만 이것들은 매우 복잡합니다. 다음과 같이 내가 대신 그에게 추천 할 것
, 당신은 구조를 사용하여 실제 응용 프로그램이 myapp_internal.exe
입니다 위의 예에서
myapp.exe
DLLs/
myapp_internal.exe
mydll1.dll
mydll2.dll
을, 그리고 그래서 모든 DLL을 수 있으며, DLL 하위 폴더에 간다 올바르게 배치하십시오. myapp.exe
바이너리는 myapp_internal.exe
을 실행하는 스텁 응용 프로그램 일뿐입니다.
도움이 되었기를 바랍니다.
그건 꽤 영리한 생각입니다, 그것은 나를 위해 잘 작동해야합니다. – Vladivarius
나는 이것을 실제로 시도하지는 않았지만 작동하지 않아야하는 이유는 없습니다 (유명한 마지막 단어).
- DLL의 지연로드를 켭니다. linker option or compiler #pragma.
- (DLL 함수를 호출하기 전에) 초기에 DLL 디렉토리를 포함하도록 프로세스의 'PATH 환경 변수 복사본을 수정하십시오. 이렇게하면 프로세스가 DLL을 찾을 수는 있지만 시스템 PATH 변수에는 영향을 미치지 않습니다. 당신이 정말로 오히려에서 LoadLibrary/GetProcAddress를를 사용하려는 경우
, 자신이 부탁을하고 사용을 단순화하기 위해 wrapper library를 사용합니다.
- 1. Visual C++ 콘솔 응용 프로그램에서 C# dll을 추가하는 방법은 무엇입니까?
- 2. C++/CLI 응용 프로그램에서 C# .dll을 호출하는 방법은 무엇입니까?
- 3. PHP CLI를 사용하여 DLL을 찾는 방법은 무엇입니까?
- 4. Winform 응용 프로그램에서 dll을 C#
- 5. C 프로그램에서 (모든) 정수 오버 플로우를 찾는 방법은 무엇입니까?
- 6. C 프로그램에서 setuid에 대한 사용자의 UID를 찾는 방법은 무엇입니까?
- 7. C# 데스크톱 응용 프로그램에서 성능 병목 현상을 찾는 방법은 무엇입니까?
- 8. Java 응용 프로그램에서 C# dll을 호출하십시오.
- 9. C 프로그램에서 함수의 끝 주소를 찾는 방법?
- 10. C# dll을 사용하여 C++ DLL을 호출해야합니까?
- 11. 모든 종속 DLL을 찾는 방법
- 12. C++ Builder XE에서 DLL을 디버깅하는 방법은 무엇입니까?
- 13. UnsatisfiedLinkError - C++ - DLL을 만드는 방법은 무엇입니까?
- 14. C#을 사용하여 .dll을 언로드하는 방법은 무엇입니까?
- 15. DLL을 찾는 실행 파일의 순서는 무엇입니까?
- 16. 내가 연결할 DLL을 찾는 데 도움이되는 최적의 방법은 무엇입니까?
- 17. AIX에서 프로세스에 의해로드 된 dll을 찾는 방법은 무엇입니까?
- 18. C# 응용 프로그램에서 사용하기 위해 Visual Studio 2008에서 .dll을 만드는 방법은 무엇입니까?
- 19. dll을 보호하는 방법은 무엇입니까?
- 20. GAC에 DLL을 등록하는 방법은 무엇입니까?
- 21. Silverlight 응용 프로그램에서 비 Silverlight DLL을 사용하는 방법은 무엇입니까?
- 22. ASP.NET에서 클래스 라이브러리를 찾는 방법은 무엇입니까?
- 23. 런타임시 DLL을 참조하는 방법은 무엇입니까?
- 24. .net 응용 프로그램에서 원시 메모리 누수를 찾는 방법은 무엇입니까?
- 25. android 응용 프로그램에서 스택 활동을 다시 찾는 방법은 무엇입니까?
- 26. 찾는 방법은 C#
- 27. 외부 dll을 업그레이드하는 방법은 무엇입니까?
- 28. C++ dll을 다른 C# 프로젝트로 가져와 사용/실행하는 방법은 무엇입니까?
- 29. C++에서 hash_map을 찾는 방법은 무엇입니까?
- 30. 서비스가 설치된 위치를 찾는 방법은 무엇입니까? C#
폴더를 PATH에 추가 할 수 있습니다. – Cyclonecode
경로를 설정하지 않고도 다른 컴퓨터에 폴더를 배포 할 수 있기를 원합니다. – Ripspace
그런 다음 * .exe와 같은 디렉토리에 넣으십시오. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx – PeterT