티스토리 뷰
라이브러리
- 라이브러리 : 여러 프로그램에서 자주 사용하는 함수와 데이터들을 실행이 가능한 바이너리 형태로 묶어놓은 파일
- 대표적인 런타임 라이브러리 : Libcmt.lib, Libcmtd.lib, Msvcrt.lib, Msvcrtd.lib
- 라이브러리 이름 중 ‘d’로 끝나는 경우 디버그 모드로 컴파일 할 때 사용되는 라이브러리
- 디폴트로 사용하도록 지정되어 있는 라이브러리 : 프로젝트 속성 > C/C++ > Code Generation > Runtime Library 에서 확인 가능
- 링커 : lib 파일들과 obj파일들을 하나로 묶어서 실행파일을 생성하는 과정을 주도
- 라이브러리 활용 방법
프로젝트 속성 > 링커 > input 탭에 라이브러리 추가해주기
속성창 이용하지 않고 코드에서 #pragma comment(lib, “라이브러리 이름“) 으로 지정 가능
- 라이브러리 경로 지정 : 프로젝트 속성 > C/C++ > 추가 디렉터리 에 라이브러리파일 위치 지정
라이브러리의 종류
1. Static Linking Library(정적라이브러리)
- 실행파일이 처음 만들어 질 때부터 아예 하나로 묶여버리는 라이브러리
- 라이브러리의 바이너리 코드를 완전히 포함하고 있다.
- 장점 : 실행의 독립성 >> 실행파일만 있으면 언제 어디에서건 실행 가능
- 단점 : 메모리 공간을 많이 차지
2. Dynamic Linking Library(DLL)
정적라이브러리 / DLL
1. 정적 라이브러리
- 실행파일의 일부로 빌드하기 때문에 정적 라이브러리를 포함하여 가상 메모리 구성
- 메인 메모리에 올라가는 페이지는 BBB.exe의 페이지
2. DLL
- 실행파일의 일부로 포함되지 않으므로 프로세스는 자신의 가상메모리에 DLL을 매핑해야한다.
- 메인 메모리에 올라간 8,9는 BBB의 것이 아니라 별도의 파일로 존재하는 DLL을 공유하는 것이다.
'windows' 카테고리의 다른 글
memory leak tool (1) _ CRT Debugging (0) | 2019.12.24 |
---|---|
[windbg] 명령어 정리 (0) | 2018.09.19 |
[windbg] 심볼패스 설정, 덤프파일 분석 (1) | 2018.09.07 |
DuplicateHandle() - 오브젝트 핸들 복사, 현재 프로세스의 진짜 핸들 (0) | 2018.07.23 |
[windows] wininet 사용법과 예제 (0) | 2018.07.12 |
- Total
- Today
- Yesterday
- 퀵정렬
- layout
- DATABASE
- 안드로이드
- 윈도우
- BOJ
- 백준
- 네트워크
- windows
- listview
- C
- handshake
- 스프링
- WinDbg
- debug
- 알고리즘
- 정렬 알고리즘
- 백준알고리즘
- Android
- OS
- 스프링부트
- adapter
- 운영체제
- LinearLayout
- HTTP
- frameLayout
- RelativeLayout
- 이진탐색트리
- C++
- ConstraintLayout
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |