DLL에는 2가지 종류가 존재 한다.
- 이 글은 msdn에 있는 내용을 나름 요약한 것입니다. -
1. 정적 MFC 링크하는 DLL, 2. 동적 MFC 링크하는 DLL
* 정적 MFC 링크하는 DLL
특징으로는 다음과 같다.
- C, C++, 파스칼, visual Basic 등 모든 언어로 실행 파일을 만들수 있다 . 즉 MFC 응용 프로그램이 아니여도 된다.
- 이것은 별도의 정적 연결 라이브러리 버전이 필요하지 않다.
- 기호는 대개 표준 C 인터페이스를 사용하여 기본 DLL에 사용된다.
대게 다음과같은 함수 선언형식을 사용한다.
extern "C" __declspec(dllexport) MyExportedFunction( );
* 동적 MFC 링크하는 DLL
특징으로는 다음과 같다.
- MFC를 내부적으로 사용하는 DLL이며, MFC 혹은 비MFC 실행 파일에 의애 호출된다.
- MFC의 동적 연결 라이브러리 버전으로 빌드 된다.
- 처음에 AFX_MANAGE_STATE 매크로를 추가해야 한다.
- Visual C++ 4.0에서 도입된 방식의 DLL 이다.
- C, C++, 파스칼, visual Basic 등 모든 언어로 실행 파일을 만들수 있다 . 즉 MFC 응용 프로그램이 아니여도 된다.
- 정적 링크되는 기본 DLL과 달리 이것은 공유 DLL, MFC DLL 에 동적으로 링크 된다.
DLL 링크 방법은 2가지로 나뉜다. Implicit, Explicit 으로 나뉜다.
* Implicit(암시적) 방식
프로그램이 시작하면서 로드하는 방식이다. 여기에는 DLL과 컴파일할 때 설정해주는 함수명이 선언된 해더파일(*.H), 링크할 때 가져올 라이브리리 파일(LIB)가 있어야 한다.
* Explicit(명시적) 방식
Implicit 방식과 다르게, DLL, *.h, *.lib 파일이 필요 없다. 간편하게 로드하여 사용하는 방식이다.!!!!!
여기에는 LoadLibrary(), GetProcAddress(), FreeLibrary()함수가 사용된다.
'IT > C#, NHibernate' 카테고리의 다른 글
FluentNHibernate 열에는 NULL을 사용할 수 없습니다. 해결방법 (0) | 2016.09.12 |
---|---|
FluentNHibernate configure 설정 (0) | 2016.09.09 |
entity framework unable to update the entityset 발생시 (0) | 2016.09.09 |
entity framework no connection string named (0) | 2016.09.09 |
NHibernate Many-to-one, one-to-Many tutorial, example (0) | 2016.09.07 |