다음을 통해 공유


MFC 모듈 상태의 활성화 컨텍스트 지원

MFC는 사용자 모듈에서 제공되는 매니페스트 리소스를 사용하여 활성화 컨텍스트를 만듭니다. 활성화 컨텍스트를 만드는 방법에 대한 자세한 내용은 다음 항목을 참조하십시오.

설명

이러한 Windows SDK 항목을 읽을 때 MFC 활성화 컨텍스트 메커니즘은 MFC가 Windows SDK 활성화 컨텍스트 API를 사용하지 않는다는 점을 제외하고 Windows SDK 활성화 컨텍스트와 유사합니다.

활성화 컨텍스트는 다음과 같은 방법으로 MFC 애플리케이션, 사용자 DLL 및 MFC 확장 DLL에서 작동합니다.

  • MFC 애플리케이션은 매니페스트 리소스에 대해 리소스 ID 1을 사용합니다. 이 경우 MFC는 자체 활성화 컨텍스트를 만들지 않지만 기본 애플리케이션 컨텍스트는 사용합니다.

  • MFC 사용자 DLL은 매니페스트 리소스에 대해 리소스 ID 2를 사용합니다. 여기에서 MFC는 각 사용자 DLL에 대해 활성화 컨텍스트를 만들므로 다른 사용자 DLL은 동일한 라이브러리의 다른 버전을 사용합니다(예: 공용 컨트롤 라이브러리).

  • MFC 확장 DLL은 활성화 컨텍스트를 설정하기 위해 호스팅 애플리케이션 또는 사용자 DLL을 사용합니다.

활성화 컨텍스트 API 사용에서 설명한 프로세스를 사용하여 활성화 컨텍스트 상태를 수정할 수 있지만 MFC 활성화 컨텍스트 메커니즘을 사용하면 외부 플러그 인에 대한 개별 호출 전후에 활성화 상태를 수동으로 전환하는 것이 쉽지 않은 DLL 기반 플러그 인 아키텍처를 개발할 때 유용할 수 있습니다.

활성화 컨텍스트는 AfxWinInit에서 만들어집니다. 이러한 활성화 컨텍스트는 AFX_MODULE_STATE 소멸자에서 제거됩니다. 활성화 컨텍스트 핸들은 AFX_MODULE_STATE에서 유지됩니다. (AFX_MODULE_STATEAfxGetStaticModuleState설명되어 있습니다.)

AFX_MANAGE_STATE 매크로는 활성화 컨텍스트를 활성화하고 비활성화합니다. AFX_MANAGE_STATE는 정적 MFC 라이브러리와 MFC DLL을 활성화하고 사용자 DLL이 선택한 해당 활성화 컨텍스트에서 실행되도록 MFC 코드를 허용합니다.

참고 항목

활성화 컨텍스트
애플리케이션 매니페스트
어셈블리 매니페스트
AfxWinInit
AfxGetStaticModuleState
AFX_MANAGE_STATE