다음을 통해 공유


DLL 초기화

업데이트: 2007년 11월

일반적으로 DLL에는 해당 DLL이 로드될 때 실행되어야 하는 메모리 할당과 같은 초기화 코드가 있습니다. Visual C++를 사용하는 경우 DLL의 초기화 코드를 추가하는 위치는 빌드하는 DLL의 형식에 따라 다릅니다. 초기화 및 종료 코드를 추가할 필요가 없으면 DLL을 빌드할 때 별도의 작업을 수행하지 않아도 됩니다. 다음 표에서는 DLL을 초기화해야 하는 경우 코드를 추가할 위치에 대해 설명합니다.

DLL 형식

초기화 및 종료 코드를 추가하는 위치

기본 DLL

DLL에 포함된 CWinApp 개체의 InitInstanceExitInstance

확장 DLL

MFC DLL 마법사에 의해 생성되는 DllMain 함수

비 MFC DLL

사용자가 제공하는 DllMain이라는 함수

Win32에서 모든 DLL에는 초기화 및 종료 시 모두 호출되는 선택적 진입점 함수가 포함될 수 있으며, 이 함수를 대개 DllMain이라고 합니다. 이 함수가 포함되면 필요할 때 추가 리소스를 할당하거나 해제할 수 있습니다. Windows는 프로세스 연결, 프로세스 분리, 스레드 연결 및 스레드 분리의 네 가지 경우 진입점 함수를 호출합니다.

C 런타임 라이브러리에서는 _DllMainCRTStartup이라는 진입점 함수를 제공하여 DllMain을 호출합니다. DLL의 형식에 따라 소스 코드에 DllMain이라는 함수를 포함시키거나 MFC 라이브러리에서 제공하는 DllMain을 사용해야 합니다.

수행할 작업

추가 정보

참고 항목

개념

DLL