DLL과 LIB 간의 차이

Anonim

DLL vs LIB

라이브러리는 응용 프로그램을 개발하는 데 사용할 수있는 리소스 모음입니다. 라이브러리는 일반적으로 서브 루틴, 함수, 클래스, 값 및 유형으로 구성됩니다. 링커 프로세스 (일반적으로 링커)에서 라이브러리와 실행 파일은 서로를 참조합니다. 라이브러리 파일은 서브 루틴이 대상 응용 프로그램에로드되는 시간에 따라 정적 및 동적 라이브러리로 나뉩니다. 따라서 LIB 파일은 정적으로 링크 된 라이브러리이고 DLL 파일은 동적으로 링크 된 라이브러리입니다.

DLL이란 무엇입니까?

DLL (Dynamic Link Library)은 Microsoft에서 개발 한 공유 라이브러리 구현입니다. 그것은을 사용합니다. dll,. ocx 또는. drv 확장자이며 Microsoft Windows 및 OS / 2 운영 체제에서 사용됩니다 … dll은 일반 DLL 파일에서 사용됩니다. 과. ocx 확장자는 ActiveX 컨트롤과. drv 확장은 레거시 시스템 드라이버 파일에서 사용됩니다. DLL 파일 형식은 Windows EXE 파일 (32 비트 / 64 비트 Windows의 경우 Portable Executable 파일, 16 비트 Windows의 경우 New Executable)과 동일합니다. 따라서 코드, 데이터 및 리소스의 조합을 EXE 파일처럼 DLL 파일에 포함 할 수 있습니다. 실제로 DLL 파일 형식의 데이터 파일을 리소스 DLL이라고합니다. 아이콘 라이브러리 (icl 확장자 포함) 및 글꼴 파일 (.fon 및.fot 확장자 포함)은 리소스 DLL의 예입니다.

-> - 섹션으로 불리는 구성 요소는 DLL을 구성하고 각 섹션은 읽기 전용 / 쓰기 가능 및 실행 가능 / 실행 불가능과 같은 자체 속성을 갖습니다. 코드 섹션은 실행 가능하지만 데이터 섹션은 실행 불가능합니다. 코드 섹션은 공유되며 데이터 섹션은 비공개입니다. 즉, DLL을 사용하는 모든 프로세스는 동일한 코드 복사본을 사용하지만 각 프로세스에는 자체 데이터 복사본이 있습니다. Windows 용 기본 동적 라이브러리는 kernel32입니다. dll은 Windows의 기본 기능 (파일 및 메모리 관련 기능)을 포함합니다. COM (Component Object Model)은 DLL을 OOP (Object Oriented Programming)로 확장 한 것입니다. 기존 DLL은 COM 파일보다 사용하기가 쉽습니다.

-> -

LIB 란 무엇입니까?

LIB 파일은 정적 라이브러리 (정적으로 링크 된 라이브러리라고도 함)입니다. LIB 파일에는 서브 루틴, 외부 함수 및 변수의 콜렉션이 들어 있습니다. LIB 파일은 런타임과 달리 컴파일 타임에 해결됩니다. 코드는 실제로 대상 응용 프로그램에 복사됩니다. 컴파일러, 링커 또는 바인더가이 해상도를 수행하고 개체 파일과 실행 파일을 생성합니다. 이 프로세스를 정적 ​​빌드 프로세스라고합니다.

DLL과 LIB의 차이점은 무엇입니까?

컴파일시 LIB 라이브러리를 호출 할 수 있지만 DLL 라이브러리는 런타임 중에 만 호출 할 수 있습니다.LIB 파일은 DLL 파일보다 훨씬 큽니다. DLL 파일의 가장 일반적인 문제점은 버전 문제입니다. 이 문제는 DLL의 코드가 변경되어 응용 프로그램이 잘못된 버전의 DLL을 사용하는 경우 발생합니다. LIB 파일과 관련된 문제는 아닙니다. 재사용 성 측면에서 새 버전의 시스템이나 완전히 새로운 응용 프로그램을 작성할 때 DLL은 항상 LIB보다 낫습니다.