어셈블리와 DLL의 차이점

Anonim

어셈블리 대 DLL

라이브러리는 응용 프로그램을 개발하는 데 사용할 수있는 리소스 모음입니다. 라이브러리는 일반적으로 서브 루틴, 함수, 클래스, 값 및 유형으로 구성됩니다. 링커 프로세스 (일반적으로 링커)에서 라이브러리와 실행 파일은 서로를 참조합니다. DLL 파일은 동적으로 링크 된 라이브러리 파일입니다. DLL은 Microsoft에서 개발했습니다. 그러나 DLL 파일과 관련된 몇 가지 문제로 인해 Microsoft는 어셈블리 파일 형식 (.NET 프레임 워크 사용)을 제안했습니다. 어셈블리 파일은 물리적으로 DLL과 매우 유사하지만 내부적으로 많은 차이가 있습니다.

DLL이란 무엇입니까?

DLL (Dynamic Link Library)은 Microsoft에서 개발 한 공유 라이브러리 구현입니다. 그것은을 사용합니다. dll,. ocx 또는. drv 확장자이며 Microsoft Windows 및 OS / 2 운영 체제에서 사용됩니다 … dll은 일반 DLL 파일에서 사용됩니다. 과. ocx 확장명은 ActiveX 컨트롤 및.cab 파일을 포함하는 라이브러리에서 사용됩니다. 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 파일보다 사용하기가 쉽습니다.

-> -

총회 란 무엇입니까?

DLL 파일과 관련된 여러 문제를 해결하기 위해 Microsoft에서 어셈블리 파일을 도입했습니다. 어셈블리 파일은 Microsoft에서 소개되었습니다. 넷 프레임 워크. 실행 가능한 논리적 기능 단위를 어셈블리라고합니다. 어셈블리는 아래에서 실행 가능합니다. NET CLR (공용 언어 런타임). 실제로 어셈블리는 EXE 또는 DLL 파일로 존재합니다. 그러나 이들은 내부적으로 Microsoft Win32 DLL과 매우 다릅니다. 어셈블리 파일은 매니페스트, 메타 데이터, MISL (Microsoft Intermediate Language) 코드 및 기타 리소스로 구성됩니다.어셈블리는 자체 설명합니다. 매니페스트는 이름, 버전, 문화, 강력한 이름, 파일 목록, 유형 및 종속성과 같은 정보를 포함합니다. MISL 코드는 CLR을 통해 실행됩니다 (직접 실행할 수는 없습니다).

어셈블리와 DLL의 차이점은 무엇입니까?

DLL은 동적으로 링크 된 라이브러리입니다. 어셈블리는 물리적으로 DLL과 동일하지만 내부적으로 매우 다릅니다. DLL 세트간에 일관성을 유지하는 것은 불가능하지만 CLR은 어셈블리가 자체 설명 (내부적으로 종속성 목록 포함)하므로 어셈블리 집합간에 일관성을 유지할 수 있습니다. DLL과 달리 버전 정보는 어셈블리에 적용됩니다 (CLR 기준). 어셈블리와 나란히 배치 (다른 버전을 사용하는 다른 응용 프로그램)가 가능합니다.