static library
- 실제 라이브러리가 링킹타임에 하나의 실행파일로 컴파일된다.
- 프로그램 실행시에 코드가 같은 메모리를 사용한다.
- CRT(C Run-Time lib)를 공유한다. (다르면 컴파일이 안됨)
- new와 alloc 실행시 실행파일과 같은 heap manager를 사용한다. (윗줄의 결과)
dll( dynamic linki ng li brary)
- 라이브러리가 별도의 실행파일로 구성되어 있다.
- 프로그램 실행시에 별도의 엔트리 포인트가 포함되어 있다.( DllMain() )
- CRT(C Run-Time lib)가 서로 별개로 구성된다.
- new와 alloc 이 서로 다른 heap manager를 사용한다. (윗줄의 결과)
static_lib과 dll을 동시에 지원하는 library를 만들때 주의 할점
- new/delete alloc/free가 반드시 실행파일혹은 라이브러리 한쪽에서 실행되도록 디자인해야한다. static lib으
로만 만들생각이라도 이거는 지켜주는게 좋다.
- memory leak detector같은 걸 위해 ::operator new/delete가 구현되어 있으면 CRT종류에 따라 링킹시에 직접
사용자 라이브러리->MFC라이브러리(만약쓴다면)->CRT 순으로 지정해줘야한다.
'개발언어 > c++' 카테고리의 다른 글
동적배열 사용하기 (CArray) (0) | 2016.06.13 |
---|---|
DLL에 존재 하는 Class 외부에서 참조하기 (0) | 2016.06.13 |
Win32 Static Library( 정적 라이브러리 ) (0) | 2016.06.13 |
예외처리(Exception) (0) | 2016.06.13 |
메모리 누수 관련 추적하여 LOG로 남기기 (0) | 2016.06.13 |