본문 바로가기
Education/Bit 18th

[최종프로젝트] DLL 형식

by ★용호★ 2010. 1. 11.

2010년 1월 11일 월요일

 

DLL 유형

MFC DLL

연결방법

내용

 

 

 

 

 

일반 DLL

 

 

정적 연결

l        C 형식의 함수를 익스포트한다.

l        C, C++, MFC, VB, Delphi 등의 프로그램에서 사용이 가능

l        사용 매크로 : _USRDLL

 

 

 

공유 연결

l        C 형식의 함수를 익스포트한다.

l        C, C++, MFC, VB, Delphi 등의 프로그램에서 사용이 가능

l        MFC 관련 DLL을 공유하기 때문에 정적에 비해 dll 크기가 작지만, dll 배포시 자신의 dll 과 관련 MFC Dll도 같이 배포하여야 한다.

l        사용 매크로 : _USRDLL, _AFXDLL

 

 

 

 

 

 

 

익스텐션 DLL

 

 

 

 

 

 

공유 연결

l        함수, 변수와 함께 C++ 클래스도 익스포트 가능

l        Mfc 프로그램에서만 사용이 가능하다. AFX_EXT_CLASS 매크로를 이용하여 클래스를 익스포트한다.

l        확장 DLL 의 경우 MFC DLL의 정적 연결을 지원하지 않는다.

l        MFC에서 _AFXEXT, _AFXDLL MFC 프로그램에서만 사용이 가능하다.

l        AFX_EXT_CLASS 매크로를 이용하여 클래스를 익스포트한다.

l        확장 DLL의 경우 MFC DLL의 정적 연결을 지원하지 않는다.

l        사용 매크로 : _AFXEXT, _AFXDLL

 


[DLL 종류]

1. 일반 DLL (regular DLL) : 정적 DLL, 공유 DLL

2. 확장 DLL (extension DLL)

 

[장점]

  • 정적 DLL : 하나의 DLL 파일만 배포하면 된다.
  • 공유 DLL : 적은 디스크 용량만을 사용한다.
  • 확장 DLL : MFC 애플리케이션에서 C++의 객체를 사용할 수 있다.

[단점]

  • 정적 DLL : 여러개의 DLL 파일이 배포되는 경우에는 많은 디스크 용량이 필요하다.
  • 공유 DLL : 여러개의 파일을 배포해야 한다.
  • 확장 DLL : MFC 애플리케이션에서만 호출할 수 있다. 런타임(runtime)에 링크가 어렵다.
  •  

출처

VisualC++.NET Programming Bible

 

댓글