맨위로가기

윈도우 라이브러리 파일

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

윈도우 라이브러리 파일은 윈도우 운영 체제에서 사용되는 동적 링크 라이브러리(DLL) 파일들을 설명한다. 주요 라이브러리로는 하드웨어 추상화 계층(HAL), 네이티브 API를 제공하는 NTDLL.DLL, Win32 API를 구현하는 KERNEL32.DLL, GDI32.DLL, USER32.DLL, COMCTL32.DLL, COMDLG32.DLL, WS2_32.DLL, ADVAPI32.DLL, NETAPI32.DLL, OLE32.DLL 등이 있다. 또한, SHSCRAP.DLL, WINMM.DLL, IMM32.DLL과 같은 기타 API와 MSVCRT.DLL, ATL\*.DLL, MFC\*.DLL, MSVBVM60.DLL, VCOMP\*.DLL, VCRUNTIME\*.DLL, MSVCIRT.DLL과 같은 런타임 라이브러리, 그리고 닷넷 프레임워크 라이브러리가 존재한다.

더 읽어볼만한 페이지

  • 마이크로소프트 API - 윈도우 API
    윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다.
  • 마이크로소프트 API - WinFS
    WinFS는 마이크로소프트가 개발한 파일 시스템으로, 검색 기능 내장 및 메타데이터 관리를 통해 데이터 관리 효율성을 높이는 것을 목표로 했으나 별도 제품으로 출시되지는 못하고 핵심 기능들이 윈도우 비스타 이후 기술에 통합되었다.
  • 윈도우 구성 요소 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 윈도우 구성 요소 - 원격 데스크톱 서비스
    원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
윈도우 라이브러리 파일
개요
종류동적 연결 라이브러리
파일 확장자.dll
.ocx
.cpl
개발마이크로소프트
최초 출시1985년
운영 체제마이크로소프트 윈도우
플랫폼IA-32, x86-64, ARM
설명
기능마이크로소프트 윈도우 운영체제에서 사용되는 동적 연결 라이브러리 파일.
사용 목적코드와 데이터를 공유하고 재사용하기 위해 사용됨.
주요 구성 요소함수, 클래스, 리소스 (이미지, 아이콘 등)
주요 라이브러리
Kernel32.dll기본 운영 체제 기능 (메모리 관리, 프로세스 관리, 스레드 관리)
Kernel32.dll 설명 (Microsoft Learn)
User32.dll사용자 인터페이스 요소 관리 (창, 메뉴, 대화 상자)
User32.dll 설명 (Microsoft Learn)
GDI32.dll그래픽 장치 인터페이스 (그리기, 폰트 관리)
GDI32.dll 설명 (Microsoft Learn)
Advapi32.dll고급 API 기능 (레지스트리, 서비스 관리, 보안)
Advapi32.dll 설명 (Microsoft Learn)
Ntdll.dll윈도우 NT 커널 인터페이스
Ntdll.dll 설명 (Microsoft Learn)
Comctl32.dll공통 컨트롤 (버튼, 리스트 박스, 트리 뷰)
Comctl32.dll 설명 (Microsoft Learn)
Shell32.dll윈도우 셸 기능 (파일 관리, 데스크톱 관리)
Shell32.dll 설명 (Microsoft Learn)
Ole32.dll객체 연결 삽입 (OLE) 기능
Ole32.dll 설명 (Microsoft Learn)
Oleaut32.dllOLE 자동화 기능
Oleaut32.dll 설명 (Microsoft Learn)
Wininet.dll인터넷 프로토콜 (HTTP, FTP) 기능
Wininet.dll 설명 (Microsoft Learn)
Winmm.dll윈도우 멀티미디어 API
Winmm.dll 설명 (Microsoft Learn)
Msvcrt.dllC 런타임 라이브러리
Msvcrt.dll 설명 (Microsoft Learn)
Msvcp*.dllC++ 런타임 라이브러리 (버전별로 파일 이름이 다름)
Msvcp*.dll 설명 (Microsoft Learn)
기타 정보
참고 사항위 목록은 주요 DLL 파일의 일부이며, 윈도우에는 더 많은 DLL 파일이 존재함.

2. 내부 구성 요소

이 섹션에서 다루는 라이브러리 파일들은 일반적인 응용 프로그램에서 직접 호출하는 경우는 드물지만, 다른 많은 라이브러리들이 의존하는 핵심적인 구성 요소이다. 이들은 윈도우 운영 체제의 가장 기본적인 기능을 담당하며, 주로 커널 모드에서 작동하거나 사용자 모드 프로그램이 직접 접근하기 어려운 내부 인터페이스를 제공한다.

대표적인 내부 구성 요소 라이브러리로는 하드웨어 추상화 계층(HAL)을 구현하는 '''Hal.dll'''과 윈도우 네이티브 API를 제공하는 '''NTDLL.DLL'''이 있다. Hal.dll은 하드웨어의 차이를 추상화하여 운영 체제와 드라이버가 일관된 방식으로 하드웨어와 상호작용할 수 있도록 돕는 커널 모드 라이브러리이다. NTDLL.DLL은 Win32 하위 시스템보다 낮은 수준에서 작동하는 네이티브 API를 노출하며, 시스템 부팅 과정이나 핵심 시스템 프로세스에서 사용된다. 또한, KERNEL32.DLL을 포함한 여러 Win32 라이브러리가 의존하는 기반 API 구현을 상당수 포함하고 있다.[3][4][5]

이러한 라이브러리들은 윈도우 시스템의 안정성과 효율성을 유지하는 데 필수적인 역할을 수행한다. 각 라이브러리에 대한 자세한 내용은 아래 하위 섹션에서 설명한다.

2. 1. Hal.dll

`Hal.dll`은 하드웨어 추상화 계층(HAL, Hardware Abstraction Layer)을 구현하는 핵심 라이브러리 파일이다.[21][1] HAL은 다양한 하드웨어 플랫폼, 특히 칩셋의 차이를 추상화하여 운영 체제의 다른 구성 요소들이 하드웨어의 구체적인 작동 방식을 알지 못해도 일관된 방식으로 기능을 사용할 수 있도록 돕는다. 이를 통해 운영 체제의 이식성을 높인다.

예를 들어, APIC(Advanced Programmable Interrupt Controller) 유무에 따라 컴퓨터의 인터럽트 처리 방식이 크게 달라지지만, HAL은 이러한 차이를 내부적으로 처리하고 통일된 인터페이스를 제공한다.[1] 따라서 운영 체제의 다른 부분이나 드라이버는 하드웨어의 세부적인 차이에 대해 신경 쓸 필요가 없다.

`Hal.dll`은 커널 메모리 영역에 로드되어 커널 모드에서 실행된다. 따라서 응용 프로그램에서 직접 호출할 수 없으며, 주로 윈도우 NT 커널, 커널 모드 장치 드라이버, 그리고 윈도우 실행 파일(Executive)에 서비스를 제공한다.[21][1] 대부분의 하드웨어 드라이버는 별도의 .sys 파일로 존재하지만, 일부 핵심 드라이버는 `Hal.dll`에 직접 컴파일되기도 한다.[21][1]

PCIPCI 익스프레스 같은 버스에 연결된 장치의 커널 모드 드라이버들은 장치의 입출력 포트나 레지스터에 접근하기 위해 HAL의 루틴을 호출한다. HAL은 각 하드웨어 플랫폼에 맞는 적절한 연산을 수행해주므로, 드라이버 개발자는 하드웨어별 차이를 크게 고려하지 않고도 다양한 플랫폼에서 작동하는 드라이버를 개발할 수 있다. 이 덕분에 동일한 CPU 아키텍처를 사용하는 여러 플랫폼에서 같은 드라이버 실행 파일을 사용할 수 있고, 드라이버 소스 코드의 이식성도 높아진다.[21][1]

윈도우 NT 아키텍처에서의 하드웨어 추상화 계층(HAL)


x86 아키텍처 시스템의 경우, 윈도우 8 이전 버전에서는 설치 미디어에 여러 종류의 HAL 파일이 포함되어 있었다. 윈도우 설치 과정에서 시스템의 ACPI 호환성, APIC 존재 여부, 다중 프로세서(물리적 코어, 하이퍼스레딩으로 구현된 논리 프로세서 포함) 지원 여부 등을 판단하여 가장 적합한 파일을 선택하고, 이를 `Hal.dll`이라는 이름으로 변경하여 하드 드라이브에 복사해 사용했다.[21][1] 그러나 윈도우 8 이후 버전부터는 x86 시스템에서도 단일 HAL 파일만 사용한다.[1] x86-64 및 아이테니엄 플랫폼에서는 처음부터 각 CPU 아키텍처별로 단 하나의 `Hal.dll` 파일만 존재했다.[21][1]

윈도우 10 버전 2004부터는 HAL 기능이 커널 실행 파일인 `ntoskrnl.exe`에 통합(정적 링크)되었다.[2] 따라서 현재 `Hal.dll` 파일은 이전 버전과의 호환성을 유지하기 위한 스텁(stub) DLL로만 남아 있다.

2. 2. NTDLL.DLL

NTDLL.DLL은 윈도우 네이티브 API를 노출시키는 라이브러리이다. 네이티브 API는 Win32나 다른 API 하위 시스템의 지원 없이 운영 체제의 사용자 모드 구성 요소가 사용하는 인터페이스이다. 이 API의 대부분은 '''NTDLL.DLL'''에 구현되어 있으며, 커널 모듈인 ntoskrnl.exe (및 그 변종)의 상단에 위치한다. 이 라이브러리 내부에서 노출되는 대부분의 심볼(기호)은 '''Nt''' 접두어를 가진다 (예: '''NtDisplayString'''). 네이티브 API는 또한 KERNEL32.DLL에 의해 노출되는 커널 API나 베이스(base) API들을 구현하는 데 사용된다.[22][23][24][3][4][5] 대부분의 윈도우 응용 프로그램들은 NTDLL.DLL을 직접적으로 호출하지 않는다.[25][6]

NTDLL.DLL 라이브러리와 직접 링크된 응용 프로그램을 '''네이티브 응용 프로그램'''(native application)이라고 하며, 이는 '네이티브 서브시스템'을 사용한다고도 한다. 네이티브 응용 프로그램은 주로 Win32 하위 시스템이 사용 가능해지기 전인 윈도우 시작 시퀀스 초기에 실행되어야 하는 작업을 수행하기 위해 존재한다. 예를 들어, Win32 하위 시스템 프로세스인 csrss.exe를 생성하는 작업이 대표적이다. csrss.exe 프로세스가 존재하기 전에는 어떤 Win32 프로세스도 생성될 수 없으므로, 이를 생성하는 프로세스(Smss.exe, "세션 관리자")는 네이티브 응용 프로그램이어야 한다. csrss.exe 자체도 네이티브 응용 프로그램이다. 시스템 초기화 중 "블루 스크린" 상태에서 chkdsk를 실행하는 '''autochk.exe''' 역시 네이티브 응용 프로그램의 예시이다. 네이티브 응용 프로그램은 `.exe` 확장자를 가지고 있지만, 사용자나 Win32 또는 다른 하위 시스템의 프로그램이 직접 실행할 수는 없다.

Win32 응용 프로그램과 달리 네이티브 응용 프로그램은 커널 런타임 코드(ntoskrnl.exe) 안에서 인스턴스화된다. 따라서 다음과 같은 특징을 가진다.

  • 다른 진입 지점(Entry Point)을 갖는다. Win32 응용 프로그램의 '''(w)(Win)MainCRTStartup''' 대신 '''NtProcessStartup'''을 사용한다.[23][4]
  • 명령줄 인자(argument)를 메모리 내 구조체에 대한 포인터를 통해 얻는다.
  • '''Rtl''' 힙(heap) API를 통해 자신의 메모리를 관리한다.
  • 프로세스를 종료할 때 Win32의 `ExitProcess`가 아닌 '''RtlExitUserProcess'''를 호출하여 실행을 반환한다.

네이티브 응용 프로그램에 링크되는 일반적인 라이브러리는 `nt.lib`인데, 이는 C 런타임 라이브러리가 Win32 응용 프로그램에 시작 코드를 제공하는 것과 유사하게 네이티브 응용 프로그램의 시작 코드를 포함한다.[26][7]

비록 네이티브 API의 대부분은 공식적으로 문서화되어 있지 않지만, 윈도우 DDK([https://web.archive.org/web/20060815100114/http://www.microsoft.com/whdc/devtools/ddk/default.mspx])를 사용하여 네이티브 응용 프로그램을 만들 수 있다. 많은 안티 바이러스 소프트웨어 공급업체나 기타 유틸리티 소프트웨어 개발사들은 부팅 시점에 특별한 작업을 수행하거나 사용자 공간에서 수행하기 어려운 작업을 처리하기 위해 네이티브 응용 프로그램을 제품에 통합하기도 한다.

3. Win32 API

Win32 API윈도우 응용 프로그램 개발에 사용되는 가장 기본적인 API 집합이다. 윈도우 사용자 인터페이스, 그래픽, 네트워킹 등 운영체제의 핵심 기능을 응용 프로그램에서 사용할 수 있도록 다양한 함수를 제공한다. 이 API 함수들은 여러 라이브러리 파일에 나뉘어 구현되어 있으며, 각 라이브러리는 Win32 API의 특정 기능 부분을 담당한다. 이를 통해 응용 프로그램은 운영체제의 기본적인 기능부터 사용자 인터페이스 요소 생성 및 관리, 그래픽 처리, 네트워크 통신 등에 이르는 다양한 기능을 활용할 수 있다.

3. 1. KERNEL32.DLL

KERNEL32.DLL은 메모리 관리, 입출력 명령, 프로세스스레드 생성, 그리고 동기화 함수들 같은 대부분의 Win32 기본 API들을 응용 프로그램에 내보낸다. 대부분의 기능들은 NTDLL.DLL에 의해 내보내진 상응하는 네이티브 API를 호출함으로써 KERNEL32.DLL 내부에 구현되어 있다.[27]

3. 2. GDI32.DLL

GDI32.DLL은 그래픽 장치 인터페이스 함수들을 노출시켜, 디스플레이나 프린터에 출력되는 기본적인 드로잉 함수들을 수행하는 역할을 한다.[27][28] 응용 프로그램은 GDI 함수를 직접 호출하여 선, 사각형, 타원 그리기, 텍스트 출력, 글꼴 관리 등 낮은 수준의 드로잉 작업을 수행한다.[8][9] 예를 들어, 페인트의 XP 버전에서 이러한 방식으로 GDI 함수를 사용한다.[8][9]

처음에는 GDI가 16색 및 256색 EGA/VGA 디스플레이 카드 및 흑백 프린터를 지원하는 수준이었으나, 시간이 지나면서 기능이 확장되었다.[10] 현재는 트루타입 글꼴, 알파 채널, 다중 모니터와 같은 고급 그래픽 기능들을 지원한다.[10]

3. 3. USER32.DLL

'''USER32.DLL'''은 데스크톱, 창, 메뉴와 같은 윈도우 사용자 인터페이스의 표준 요소를 생성하고 조작하는 윈도우 USER 컴포넌트를 구현한다. 이를 통해 프로그램들은 윈도우의 모양과 느낌에 맞는 그래픽 사용자 인터페이스(GUI)를 구현할 수 있다. 프로그램은 윈도우 USER의 함수를 호출하여 창을 생성 및 관리하고, 창 메시지(주로 마우스 및 키보드 입력과 같은 사용자 입력이나 운영 체제의 알림)를 수신하며, 창에 텍스트를 표시하고 메시지 상자를 표시하는 등의 작업을 수행한다.

USER32.DLL의 많은 함수는 사용자 인터페이스의 다양한 요소를 실제로 렌더링하기 위해 GDI32.DLL에서 내보낸 GDI 함수를 호출한다. 일부 프로그램들은 USER32 함수를 통해 생성된 창 내에서 낮은 수준의 드로잉 작업을 수행하기 위해 GDI 함수를 직접 호출하기도 한다.

3. 4. COMCTL32.DLL

'''COMCTL32.DLL'''은 파일 열기, 저장, 다른 이름으로 저장 대화 상자, 진행률 표시줄, 목록 보기, 상태바와 같은 다양한 종류의 표준 윈도우 컨트롤을 구현하는 라이브러리 파일이다. 이러한 UI 요소에 대한 창을 만들고 관리하며, 다양한 그래픽 요소를 배치하고 사용자 입력을 수집하기 위해 USER32.DLL 및 GDI32.DLL의 함수를 호출한다.

3. 5. COMDLG32.DLL

'''COMDLG32.DLL'''은 공통 대화 상자 라이브러리로, 마이크로소프트가 '일반적인 응용 프로그램 작업'이라고 여기는 다양한 윈도우 대화 상자를 구현한다. 예를 들어 '열기'나 '다른 이름으로 저장'과 같은 기능에 사용되는 대화 상자가 이에 해당한다. 윈도우 비스타가 출시된 이후, 마이크로소프트는 이 라이브러리에서 제공하던 '열기' 및 '다른 이름으로 저장' 대화 상자를 더 이상 사용하지 않고 '공통 항목 대화 상자 API'로 대체하였다.[11]

3. 6. WS2_32.DLL

`'''WS2_32.DLL'''`은 윈속(Winsock) API를 구현하며, TCP/IP 네트워킹 기능을 제공하고 다른 네트워크 API와의 부분적이고 깨진 호환성을 제공한다. `'''wsock.dll'''` 및 `'''wsock32.dll'''`은 Windows 3.11윈도우 95와의 호환성을 위한 이전 버전이다.

3. 7. ADVAPI32.DLL

'''ADVAPI32.DLL'''은 고급 윈도우 32 베이스 API DLL[12]로서, 윈도우 레지스트리 조작을 위한 보안 호출 및 기능을 제공한다.

3. 8. NETAPI32.DLL

'''NETAPI32.DLL'''은 네트워크 인터페이스를 쿼리하고 관리하는 기능을 제공한다.

3. 9. OLE32.DLL

'''OLE32.DLL'''은 구성 요소 객체 모델 및 개체 연결 및 포함을 제공한다.

4. 기타 API

윈도우 운영체제는 핵심 기능 외에도 다양한 부가 기능을 지원하기 위해 여러 DLL 파일을 사용한다. 대표적인 예로는 개체 연결 및 포함(OLE)의 셸 스크랩 파일 기능을 담당했던 SHSCRAP.DLL, WinMM 오디오 API를 제공하는 WINMM.DLL, 그리고 입력기(IME)와의 상호 작용을 처리하는 IMM32.DLL 등이 있다.

4. 1. SHSCRAP.DLL

'''SHSCRAP.DLL'''은 개체 연결 및 포함(OLE) 메커니즘의 일부로, `.shs` 파일 확장자를 사용하는 셸 스크랩 파일에 대한 지원을 구현한다. 셸 스크랩 파일은 OLE를 지원하는 응용 프로그램에서 선택한 내용을 파일 탐색기 창이나 바탕 화면으로 드래그할 때 자동으로 생성되거나,[13][29] 개체 패키저를 사용하여 만들 수도 있다. 이렇게 생성된 파일은 다른 OLE 지원 응용 프로그램으로 드래그하여 사용할 수 있다.

이 기능은 보안 문제와 낮은 사용률 때문에 윈도우 비스타 및 이후 버전의 윈도우에서 제거되었다.[14][30] 스크랩 파일(.shs)은 실행 코드를 포함한 다양한 내용을 저장할 수 있으며, '알려진 파일 형식의 파일 확장명 숨기기' 옵션을 해제해도 파일 확장명이 표시되지 않는 점 때문에 바이러스 유포에 악용되기도 했다.[15] 이 기능은 윈도우 XP 시스템의 레지스트리 항목과 DLL 파일을 복사하여 복원할 수 있다.[16][31]

4. 2. WINMM.DLL

'''WINMM.DLL'''은 최초의 WinMM 오디오 API에 접근할 수 있도록 제공한다.

4. 3. IMM32.DLL

IMM32.DLL은 입력기(IME)를 호출하고 상호 작용하는 역할을 담당한다. 한국어 윈도우 환경에서는 한글 입력기와의 상호 작용을 지원한다.

5. 런타임 라이브러리

런타임 라이브러리는 특정 프로그래밍 언어개발 환경에서 만들어진 프로그램을 실행할 때 필요한 기본적인 함수나 기능들을 모아 놓은 파일들이다. 예를 들어 마이크로소프트 비주얼 C++로 개발된 프로그램은 해당 버전의 C/C++ 런타임 라이브러리(MSVCRT.DLL 등)가 필요하며, 비주얼 베이직 프로그램은 비주얼 베이직 런타임(MSVBVM60.DLL)이, 닷넷 프레임워크 기반 언어(C#, Visual Basic .NET 등)로 개발된 프로그램은 닷넷 프레임워크가 설치되어 있어야 한다. 이러한 라이브러리들은 프로그램이 운영체제와 상호작용하고 기본적인 작업을 수행할 수 있도록 돕는다.

5. 1. MSVCRT.DLL, MSVCPP*.DLL, CRTDLL.DLL

'''MSVCRT.DLL'''은 마이크로소프트 비주얼 C++ 버전 4.2부터 6.0까지 사용된 C 표준 라이브러리이다. 해당 버전의 비주얼 C++로 컴파일된 프로그램들이 필요로 하는 기본적인 라이브러리 함수들을 제공하며, 문자열 처리, 메모리 할당, C 스타일 입출력 호출과 같은 기능들을 포함한다. C++ 라이브러리로는 '''MSVCP*.DLL''' (예: MSVCP60.DLL)이 사용된다.

MSVCRT.DLL은 윈도우 95 OSR2.5 버전 이후 윈도우 운영체제에 포함되어 다른 구성 요소에서도 사용되었다. 그 이전 버전의 윈도우에서는 '''CRTDLL.DLL''' 라이브러리가 대신 사용되었다. 초기 윈도우 버전에서는 MSVCRT.DLL을 사용하는 프로그램이 호환되는 버전의 DLL 파일을 System32 폴더에 설치하도록 요구했는데, 이 과정에서 설치 프로그램들이 기존 파일과의 버전 충돌을 제대로 확인하지 않아 시스템에 여러 버전의 DLL이 섞이거나 호환되지 않는 버전으로 덮어쓰는 문제가 발생하는 DLL 지옥 현상의 원인이 되기도 했다.[32]

비주얼 C++ 4.0 이전 버전과 7.0 이후 버전(Visual Studio .NET 2002 이후)은 각기 다른 이름의 런타임 라이브러리 DLL을 사용했다(예: MSVCR20.DLL, MSVCR70.DLL, MSVCR71.DLL, MSVCP110.DLL 등). 따라서 해당 버전으로 개발된 응용 프로그램은 실행에 필요한 특정 버전의 런타임 라이브러리를 함께 설치해야 한다.[17] 마이크로소프트는 이를 위해 '''비주얼 C++ 재배포 가능 패키지'''(Visual C++ Redistributable Package)를 제공하며, 일반적으로 윈도우에는 특정 버전의 런타임이 이미 설치되어 있는 경우가 많다.

비주얼 스튜디오 2015 (버전 14.0)부터는 C/C++ 런타임 라이브러리의 대부분 기능이 '''UCRTBASE.DLL'''이라는 새로운 DLL로 통합되었다. 이는 C99 표준에 더 가깝게 구현되었다.Universal C Runtime (UCRT) 업데이트 가이드 윈도우 10부터 이 '''유니버설 C 런타임''' ('''UCRT''')은 윈도우 운영체제의 핵심 구성 요소로 포함되어, 비주얼 C++ 뿐만 아니라 GCC나 Clang/LLVM 같은 다른 컴파일러들도 UCRT를 표준 라이브러리로 사용할 수 있게 되었다.MSYS2 환경 문서 UCRTBASE.DLL을 사용하는 프로그램은 VCRUNTIME140.DLL과 같은 추가적인 비주얼 C++ 런타임 DLL에도 의존하게 된다.[18]

이 런타임 라이브러리들은 비주얼 C++로 작성된 프로그램뿐만 아니라, MinGW와 같이 MSVCRT.DLL을 런타임으로 사용하는 일부 다른 컴파일러 환경에서도 사용된다. 물론, 자체적인 런타임 라이브러리를 가진 컴파일러들도 존재한다.

참고로, 런타임 라이브러리의 소스 코드는 참조 및 디버깅 목적으로 비주얼 C++ 설치 시 함께 제공된다.[33][19] (예: C:\Program Files\Microsoft Visual Studio 11.0\VC\crt\src)

5. 2. 기타 런타임 라이브러리


  • '''ATL\*.DLL''': 액티브 템플릿 라이브러리 (Active Template Library)
  • '''MFC\*.DLL''': 마이크로소프트 파운데이션 클래스 (Microsoft Foundation Classes)
  • '''MSVBVM60.DLL''': Visual Basic 6.0 가상 머신 (Visual Basic.NET 프로그램은 대신 .NET Framework가 필요함)
  • '''VCOMP\*.DLL''': 마이크로소프트 OpenMP 런타임
  • '''VCRUNTIME\*.DLL''': 마이크로소프트 Visual C++ 런타임, MSVC 14.0 이상용
  • '''MSVCIRT.DLL''': 마이크로소프트 C++ 라이브러리, MS C 9 및 10 (MSVC 2.x, 4.x)용 '''``'''의 더 이상 사용되지 않는 C++ 클래스를 포함함 (당시 초안 C++ 표준 라이브러리는 MSVCRT.DLL 내에 통합되었으며, Visual C++ 5.0 릴리스와 함께 분리되었음)

5. 3. 닷넷 프레임워크 라이브러리

C#, Visual Basic .NET, C++/CLI 및 기타 .NET 언어로 작성된 프로그램은 실행을 위해 .NET Framework가 필요하다. .NET Framework는 다양한 라이브러리와 어셈블리라고 불리는 구성 요소를 포함하고 있다. 대표적인 라이브러리로는 '''mscorlib.dll'''(다국어 표준 공통 객체 런타임 라이브러리, 이전 명칭: Microsoft 공통 객체 런타임 라이브러리)[20]이 있으며, 어셈블리의 예시로는 '''System.Windows.Forms.dll''' 등이 있다.

참조

[1] 서적 The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System https://books.google[...] Jones & Bartlett Learning
[2] 트윗 Did I miss something? Routines... 2019-07-25
[3] 서적 Reversing: Secrets of Reverse Engineering https://books.google[...] John Wiley & Sons
[4] 웹사이트 Inside Native Windows Applications http://www.microsoft[...] 2011-12-14
[5] 서적 Windows® Internals https://books.google[...] O'Reilly Media
[6] 서적 Information and Communications Security: 8th International Conference, ICICS 2006 Raleigh, NC, USA, December 4–7, 2006 proceedings Springer
[7] 웹사이트 Inside Native Applications https://web.archive.[...] 2017-08-26
[8] 웹사이트 Identifying Functions in DLLs https://learn.micros[...] Microsoft 2022-03-11
[9] 문서 Wine API: gdi32.dll http://source.winehq[...]
[10] 서적 Windows graphics programming: Win32 GDI and DirectDraw https://archive.org/[...] Prentice Hall Professional
[11] 웹사이트 Common Dialog Box Library (Windows) https://msdn.microso[...] 2017-10-25
[12] 웹사이트 How RPC Works: Remote Procedure Call (RPC) {{!}} Microsoft Learn https://learn.micros[...] 2023-09-11
[13] 웹사이트 WD: What is a Scrap (.shs) file? https://support.micr[...]
[14] 웹사이트 Windows Confidential: Scrapping the Scraps https://technet.micr[...] 2011-12-14
[15] 웹사이트 VBS.Stages.A https://web.archive.[...]
[16] 웹사이트 How to open SHS files https://answers.micr[...] 2011-12-14
[17] 웹사이트 C Run-Time Libraries http://msdn.microsof[...] 2011-12-14
[18] 웹사이트 C++ binary compatibility 2015-2022 https://docs.microso[...] 2024-03-11
[19] 웹사이트 Source Code for the C Run-Time Functions http://msdn.microsof[...] 2006-09-15
[20] 웹사이트 What does the "ms" in "mscorlib" stand for - hint: It's not "Microsoft" http://weblogs.asp.n[...] 2004-01-31
[21] 서적 The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System http://books.google.[...] Jones & Bartlett Learning
[22] 서적 Reversing: Secrets of Reverse Engineering http://books.google.[...] John Wiley & Sons
[23] 웹인용 Inside Native Windows Applications http://www.microsoft[...] 2016-02-11
[24] 서적 Windows® Internals http://books.google.[...] O'Reilly Media
[25] 서적 Information and communications security: 8th international conference, ICICS 2006 [...] proceedings http://books.google.[...] Springer
[26] URL http://technet.micro[...]
[27] 문서 Visual Studio Developer Center: Identifying Functions in DLLs http://msdn.microsof[...]
[28] 문서 Wine implementation of GDI32
[29] 문서 WD: What is a Scrap (.shs) file? http://support.micro[...]
[30] 웹인용 Windows Confidential - Scrapping the Scraps http://technet.micro[...] 2016-2-11
[31] 웹인용 How to open SHS files http://answers.micro[...] 2016-2-11
[32] 웹인용 C Run-Time Libraries http://msdn.microsof[...] 2016-2-11
[33] URL http://msdn.microsof[...]
[34] URL http://weblogs.asp.n[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com