[etc] 윈도우 라이브러리 파일
* 윈도우 라이브러리 파일
- ms windows os는 dll이라고 알려진 라이브러리를 지원
- 이것들은 복사본 하나만 메모리에 올라와도 여러 프로세스에서 사용될 수 있는 코드 라이브러리이다.
[그림 1] 웹에서 구현되는 프로그램들의 실행 흐름을 보여주는 다이어그램
* kernel mode
- 각종 프로토콜, 하드웨어 드라이버들이 있음
* user mode
- 실제로 사용자가 프로그램을 실행하는 윈도우
* ntdll.dll
- 윈도우가 부팅되면서 커널메모리 영역을 사용할 수 있게끔 해주는 중요한 역할
* kernel32.dll
- ntdll.dll과 kernel32.dll 은 한몸이라 볼 수 있음
- 모든 프로그램은 항상 ntdll.dll 파일과 kernel32.dll파일(이하 소개하는 DLL을 포함)을 사용하게 되어있음 (직접적인 호출이 아닌 의존적 라이브러리)
- 메모리 관리, 입출력 명령, 프로세스와 스레드 생성, 동기화 함수
* gdi32.dll
- graphic device interface
- 디스플레이나 프린터에 출력되는 원시적인 드로잉 함수
* user32.dll
- 프로그램이 실행될 때 gdi32.dll 파일과 드라이버를(win32k.sys) 호출하는 역할
- 윈도우 user 구성요소(창, 메뉴, 윈도우 사용자 인터페이스 표준요소)를 구현
- GUI를 구현할 수 있음
- 프로그램 창 생성, 관리, 창 메시지 받기등을 수행
* comctl32.dll
- 파일 오픈, 저장, 상태바 같은 윈도우 표준 컨트롤을 구현
- UI요소들을 위한 윈도우를 만들고 관리하기 위해 user32.dll, gdi32.dll에서 호출
* msvcrt.dll (런타임 라이브러리)
- CRT 라이브러리
- c , c++ 프로그램이 요구하는 일반적 라이브러리 함수
- 문자열 처리, 메모리 할당, c스타일 입출력 호출
- 설치된 운영체제보다 최신에 나온 런타임들은 비주얼 C++ 재배포가능 패키지에서 구할 수 있음
* ws2_32.dll
- 윈도우 소켓을 구동하는 파일
- 익스플로러가 내장되면서 만들어진 것
- 네트워크 컴퓨팅을 하기위한 밑거름
출처 :
http://sungtg.tistory.com/637
https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_%ED%8C%8C%EC%9D%BC