MFC 모듈의 상태 데이터 관리
이 문서에서는 MFC 모듈 및 (를 경로 코드를 통해 응용 프로그램을 실행할 때 사용) 실행 흐름 입력 모듈을 떠날 때이 상태를 업데이트 하는 것의 상태 데이터를 설명 합니다.모듈 상태를 전환의 AFX_MANAGE_STATE 및 METHOD_PROLOGUE 매크로 설명 합니다.
[!참고]
용어 "모듈" 여기 실행 프로그램 또는 DLL (또는 일련의 Dll) 나머지 응용 프로그램과 별개로 작동, 참조 하지만 사본을 공유 MFC DLL을 사용 합니다.ActiveX 컨트롤을 모듈의 전형적인 예입니다.
다음 그림에서와 같이 MFC 응용 프로그램에서 사용 되는 각 모듈의 상태 데이터 있습니다.이 데이터의 예로 Windows 인스턴스 핸들 (리소스를 로드 하기 위한 사용), 현재 포인터 CWinApp 및 CWinThread 개체의 응용 프로그램, OLE 모듈 참조 횟수 및 다양 한 Windows 개체 핸들 MFC 개체의 해당 인스턴스 사이의 연결을 유지 하는 지도입니다.그러나 응용 프로그램이 여러 개의 모듈로 사용 하면 각 모듈의 상태 데이터를 응용 프로그램 아닙니다 다양 합니다.대신, 각 모듈의 MFC 상태 데이터의 복사본이 별도로 있습니다.
단일 모듈(응용 프로그램)의 상태 데이터
모듈의 상태 데이터 구조에 포함 된 및 항상 해당 구조에 대 한 포인터를 통해 사용할 수 있습니다.다음 그림에 나와 있는 것 처럼 특정 모듈을 실행의 흐름을 입력 하면 해당 모듈의 상태는 "현재" 또는 "유효" 상태 이어야 합니다.따라서 각 스레드 개체는 해당 응용 프로그램의 유효한 상태 구조체에 대 한 포인터를입니다.전혀 업데이트 this이 포인터를 유지 시간 경우 응용 프로그램의 전역 상태를 관리 하 고 각 모듈 상태의 무결성을 유지 하는 중요 한전역 상태를 잘못 관리 하면 예상치 못한 응용 프로그램 동작을 초래할 수 있습니다.
여러 모듈의 상태 데이터
즉, 각 모듈 간의 모든 진입점에서 모듈 상태를 올바르게 전환에 대 한 책임입니다."진입점"는 실행 흐름 모듈의 코드를 입력할 수 있는 곳입니다.진입점은 다음과 같습니다.