DLL은 프로그램이 특수 작업을 수행하는 데 필요한 코드와 기타 리소스를 공유할 수 있게 해주는 실행 파일인 동적 링크 라이브러리를 의미합니다. Windows에서는 많은 응용 프로그램이 완전한 실행 파일이 아니며 비교적 독립적인 동적 링크 라이브러리, 즉 시스템에 배치되는 DLL 파일로 구분됩니다. 응용 프로그램에는 여러 개의 DLL 파일이 있을 수 있으며, DLL 파일은 여러 응용 프로그램에서 공유될 수 있습니다. 이러한 DLL 파일을 공유 DLL 파일이라고 합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
DLL은 동적 링크 라이브러리를 의미하는 Dynamic Link Library의 약어로, 어떤 사람들은 이를 애플리케이션 확장이라고 부르기도 합니다. 이는 프로그램이 특수 작업을 수행하는 데 필요한 코드 및 기타 리소스를 공유할 수 있게 해주는 실행 파일입니다.
Windows에서는 많은 응용 프로그램이 완전한 실행 파일이 아닙니다. 이들은 비교적 독립적인 동적 링크 라이브러리, 즉 시스템에 배치되는 DLL 파일로 구분됩니다. 프로그램을 실행하면 해당 DLL 파일이 호출됩니다. 응용 프로그램에는 여러 개의 DLL 파일이 있을 수 있으며, DLL 파일은 여러 응용 프로그램에서 공유될 수 있습니다. 이러한 DLL 파일을 공유 DLL 파일이라고 합니다.
DLL 파일을 사용하면 프로그램이 특수 작업을 수행하는 데 필요한 코드 및 기타 리소스를 공유할 수 있습니다. 대규모 응용 프로그램은 여러 모듈로 구성됩니다. 이러한 모듈은 서로 협력하여 전체 소프트웨어 시스템의 작업을 완료합니다. 기능이 더 일반적이고 다른 소프트웨어 시스템을 구축할 때 계속 사용되는 일부 모듈이 있을 수 있습니다. 소프트웨어 시스템을 구축할 때 모든 모듈의 소스 코드를 전체 응용 프로그램 EXE 파일로 정적으로 컴파일하면 몇 가지 문제가 발생합니다. 한 가지 단점은 응용 프로그램의 크기가 커지므로 더 많은 디스크 공간을 차지하고 프로그램이 실행된다는 점입니다. 또한 많은 양의 메모리 공간을 소비하여 시스템 리소스 낭비를 초래합니다. 또 다른 단점은 대규모 EXE 프로그램을 작성할 때 수정 및 재구축할 때마다 모든 소스 코드를 조정하고 컴파일해야 하므로 작업의 복잡성이 증가한다는 것입니다. 이는 또한 단계적 단위 테스트에 도움이 되지 않습니다.
Windows 시스템 플랫폼은 완전히 다르고 보다 효과적인 프로그래밍 및 실행 환경을 제공합니다. 독립적인 프로그램 모듈을 더 작은 DLL 파일로 만들고 별도로 컴파일하고 테스트할 수 있습니다. 런타임 시 시스템은 EXE 프로그램이 실제로 호출하려는 경우에만 이러한 DLL 모듈을 메모리 공간에 로드합니다. 이 접근 방식은 EXE 파일의 크기와 메모리 공간 요구 사항을 줄일 뿐만 아니라 이러한 DLL 모듈을 여러 응용 프로그램에서 동시에 사용할 수 있도록 해줍니다. Windows 자체는 DLL 모듈 형태로 일부 주요 시스템 기능을 구현합니다.
일반적으로 DLL은 .dll, .DRV, .FON, .SYS 및 많은 .EXE 확장자를 가진 디스크 파일입니다. 이는 글로벌 데이터, 서비스 기능 및 리소스로 구성됩니다. 런타임 시 시스템에 의해 호출 프로세스의 가상 공간에 로드되고 호출 프로세스의 일부가 됩니다. 다른 DLL과 충돌이 없으면 일반적으로 해당 파일은 프로세스의 가상 공간에서 동일한 주소에 매핑됩니다. DLL 모듈에는 외부 세계에 서비스를 제공하기 위해 내보낸 다양한 기능이 포함되어 있습니다. DLL은 자체 데이터 세그먼트를 가질 수 있지만 이를 호출하는 애플리케이션과 동일한 스택 모드를 사용하여 자체 스택을 갖지 않습니다. DLL은 코드 캡슐화를 구현합니다. 특정 프로그래밍 언어와 관련이 있으며 컴파일러와는 아무런 관련이 없습니다.
Win32 환경에서 각 프로세스는 자체 읽기/쓰기 전역 변수를 복사합니다. 다른 프로세스와 메모리를 공유하려면 메모리 매핑 파일을 사용하거나 공유 데이터 세그먼트를 선언해야 합니다. DLL 모듈에 필요한 스택 메모리는 실행 중인 프로세스의 스택에서 할당됩니다. Windows는 DLL 모듈을 로드할 때 프로세스 함수 호출을 DLL 파일의 내보낸 함수와 일치시킵니다. DLL에 대한 Windows 운영 체제의 작동은 DLL을 이를 필요로 하는 프로세스의 가상 주소 공간에 매핑하는 것뿐입니다. DLL 함수 내의 코드로 생성된 모든 개체(변수 포함)는 이를 호출하는 스레드나 프로세스의 소유입니다.
DLL의 장점
프로그램이 DLL을 사용하면 다음과 같은 장점이 있습니다: 더 적은 리소스를 사용합니다. 여러 프로그램이 동일한 함수 라이브러리를 사용하는 경우 DLL은 디스크 및 물리적 메모리에 로드되는 코드의 중복 양을 줄일 수 있습니다. 이는 포그라운드에서 실행되는 프로그램뿐만 아니라 Windows 운영 체제에서 실행되는 다른 프로그램에도 큰 영향을 미칠 수 있습니다. 모듈식 아키텍처 DLL을 홍보하면 모듈식 프로그램 개발을 촉진하는 데 도움이 될 수 있습니다. 이는 여러 언어 버전이 필요한 대규모 프로그램이나 모듈식 아키텍처가 필요한 프로그램을 개발하는 데 도움이 될 수 있습니다. 모듈식 프로그램의 예로는 런타임에 동적으로 로드할 수 있는 여러 모듈이 있는 회계 프로그램이 있습니다. 단순화된 배포 및 설치 DLL의 기능을 업데이트하거나 복구해야 하는 경우 DLL을 배포하고 설치할 때 DLL에 대한 프로그램 링크를 다시 설정할 필요가 없습니다. 또한 여러 프로그램이 동일한 DLL을 사용하는 경우 여러 프로그램이 업데이트 또는 수정의 이점을 누릴 수 있습니다. 이 문제는 정기적으로 업데이트되거나 수정되는 타사 DLL을 사용할 때 더 자주 발생할 수 있습니다.
더 많은 관련 지식은 FAQ 칼럼을 방문해주세요!
위 내용은 dll 파일은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!