동적 라이브러리(.dll)
- 프로그램 실행 시 필요시만 DLL 파일에서 함수를 참조
- 프로그램 실행 시 DLL을 모두 로드하지 않기 때문에 프로그램 로딩 시간이 단축
- 함수 업그레이드 시 해당 DLL만 수정 배포하면 되기때문에 용이
- 소스 외부 유출 방지 효과
- .exe 파일 만들때 필요한 파일: .h,.lib (*.dll 참조 용). dll자체는 필요 없다.
- .exe 파일 실행할 할 때 필요한 파일: *.dll (배포할 때 *.dll 필요)
- dll 제작 시 lib도 같이 생성됨(dll 참조용)
정적 라이브러리(.lib)
- 필요한 함수를 프로그램 코드에 붙여 컴파일 시 프로그램 자체에서 참조
- 프로그램 실행 후 빠른 처리시간
- 컴파일 시 .lib는 .exe내부에 모두 녹아 들어가므로 프로그램 .exe파일만 있으면 .lib없이 실행 가능(하나의 파일만 있으면 됨)
- 소스 외부 유출 방지 효과
- .exe 파일 만들때 필요한 파일: .h,.lib (별도의 *.dll 필요 없음)
라이브러리 dependency찾기
- 특정 프로그램을 실행시키려면 특정 라이브러리가 미리 설치되어있어야 하는 경우가 있는데 이 때 dependency walker라는 프로그램을 사용해서 어떤 dependency를 가지고 있는지 확인해보자.
'Programming > Windows Visual C++' 카테고리의 다른 글
C언어의 메모리 구조(Data, Heap, Stack) (0) | 2020.03.16 |
---|---|
/MT /MD 옵션의 차이 (0) | 2020.03.16 |
윈도우 서비란 무엇인가? 서비스 만들기 (0) | 2020.03.16 |
함수에서 문자열을 리턴하는 올바른 방법 (0) | 2020.03.16 |
.h파일 include하는 올바른 방법 (0) | 2020.03.16 |