다음을 통해 공유


기본 DLL 초기화

기본 DLL에는 CWinApp 개체가 있기 때문에 MFC 응용 프로그램과 같은 위치(DLL에 포함된 CWinApp 파생 클래스의 InitInstanceExitInstance 멤버 함수)에서 초기화 및 종료 작업을 수행해야 합니다. MFC는 _DllMainCRTStartup에서 PROCESS_ATTACHPROCESS_DETACH에 대해 호출되는 DllMain 함수를 제공하므로 사용자가 직접 DllMain 함수를 작성해서는 안 됩니다. MFC에서 제공하는 DllMain 함수는 DLL이 로드될 때 InitInstance를 호출하고, DLL이 언로드되기 전에 ExitInstance를 호출합니다.

기본 DLL은 해당 InitInstance 함수에서 TlsAllocTlsGetValue를 호출하여 여러 스레드를 추적할 수 있습니다. 또한 DLL은 이 함수를 이용하여 스레드별 데이터를 추적할 수 있습니다.

동적으로 MFC에 링크하는 기본 DLL에서 MFC OLE, MFC 데이터베이스(또는 DAO) 또는 MFC 소켓이 지원되는 경우에는 각각 MFC 디버그 확장 DLL인 MFCOxxD.dll, MFCDxxD.dll 및 MFCNxxD.dll(xx는 버전 번호)이 자동으로 링크됩니다. 기본 DLL의 CWinApp::InitInstance에서 사용되는 각각의 DLL에 대해 다음과 같은 미리 정의된 초기화 함수 중 하나를 호출해야 합니다.

MFC 지원 종류

호출할 초기화 함수

MFC OLE(MFCOxxD.dll)

AfxOleInitModule

MFC 데이터베이스(MFCDxxD.dll)

AfxDbInitModule

MFC 소켓(MFCNxxD.dll)

AfxNetInitModule

수행할 작업

추가 정보

참고 항목

개념

DLL 초기화