필자는 Dependancy Walker (그리고 필자가 시도한 다른 모든 유틸리티)가 이름이나 서수에 의한 수출이 0인데도 파일 크기가 약 4MB 인 내 시스템에 설치된 DLL을 최근에 만났습니다. DLL의 유일한 목적은 다른 코드에서 사용하기 위해 함수를 내보내는 것이 었으므로 수출이없는 DLL의 목적은 무엇일까?DLL의 내보내기가없는 방법은 무엇입니까?
6
A
답변
4
DLL을 생각하는 한 가지 방법은 함수의 컨테이너입니다. DLL에서 함수를 내 보내면 DLL 외부의 호출자가 해당 함수를 볼 수 있습니다. DLL에서 함수를 내보내는 것이 아마도 액세스를 제공하는 가장 일반적인 방법 일 수 있지만, 많은 플랫폼은 .NET Framework 및 Java에서의 리플렉션과 같은 내 보내지 않은 함수에 액세스하는 다른 방법을 제공합니다. LoadLibtary/GetProcAddress in 그 기능을 외부 응용 프로그램
3
리소스 전용 DLL에서 호출하는 라이브러리 함수를 가지고 개발자에게 유용하지만, 바람직하지 않은 때문에 Win32에서
이 작업을 수행하는이유는 다양 종종는, 어쩌면? 그것들은 예를 들어, 지역화 목적으로 꽤 자주 사용됩니다.
EDIT : DllMain()에서 기능을 사용할 수 있도록 해주는 코드로 DLL을 가질 수도 있습니다. DLL은 예를 들어 일부 전역 디스패처에 등록하거나 이름이 지정된 커널 객체를 만들 수 있습니다.
관련 문제
- 1. C++ DLL의 ctypes 호출을 디버깅하는 방법은 무엇입니까?
- 2. DLL의 파일 이름을 얻는 방법은 무엇입니까?
- 3. dll의 FileVersion과 ProductVersion의 차이점은 무엇입니까?
- 4. 이러한 IBM.Data.DB2 dll의 차이점은 무엇입니까?
- 5. baseaddress에서 DLL의 이미지 크기를 올바르게 가져 오는 방법은 무엇입니까?
- 6. Wix 3.5에서 .NET DLL의 어셈블리 버전을 설정하는 방법은 무엇입니까?
- 7. 여러 .NET 프로젝트에서 공통 DLL의 버전 제어를 관리하는 방법은 무엇입니까?
- 8. .csproj 파일에서 DLL의 전체 경로를 확인하는 방법은 무엇입니까?
- 9. C에서 세 번째 DLL에서 두 DLL의 코드를 사용하는 방법은 무엇입니까?
- 10. windbg에서 kernel32.dll의 모든 함수에 중단 점을 설정하는 방법은 무엇입니까?
- 11. dll의 인터페이스
- 12. DLL의 ParentWindow
- 13. System.Security.Permissions.FileIOPermission DLL의
- 14. DLL의 동적로드
- 15. DLL의 DoEvents
- 16. 타사 DLL의 언어를 변경하는 방법?
- 17. Windows에서 * .a와 * .dll의 차이점
- 18. 어셈블리와 DLL의 차이점
- 19. DLL의 메서드를 C#
- 20. 타사 dll의 교착 상태
- 21. Embed Resource DLL의 명명 규칙은 무엇입니까?
- 22. 리소스 파일과 위성 DLL의 차이점은 무엇입니까?
- 23. asp.net dll의 기본 조사 순서는 무엇입니까
- 24. Windows 용 루아 "스텁"dll의 목적은 무엇입니까
- 25. COM DLL과 VC++ MFC DLL의 차이점은 무엇입니까?
- 26. .exp의 용도와 .lib와 .dll의 차이점
- 27. C++ dll과 Delphi dll의 차이점
- 28. C에서 DLL의 메시지를들을 수있는 방법 #
- 29. 구조체 클래스 라이브러리/dll의 부트 스트랩
- 30. dll의 함수 사용
아, 그 말이 맞습니다. 필자가 작성한 경우 내보내기 테이블을 통하지 않고 DLL을 사용하는 방법이 있다는 것을 깨닫지 못했습니다. –