검색결과 리스트
글
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
MFC는 자체적으로 구현한 TLS(Thread Local Stroage), 즉 MFC TLS를 사용하여 MFC의 상태 정보를 관리한다.
MFC가 관리하는 상태정보는 3가지가 있다.
- 스레드 정보 : _AFX_THREAD_STATE
- 모듈 정보 : AFX_MODULE_STATE
- 모듈 스레드 정보 : AFX_MODULE_THREAD_STATE
_AFX_THREAD_STATE, AFX_MODULE_STATE, AFX_MODULE_THREAD_STATE 는 MFC 상태 정보 관리를 위해 사용되는 클래스이다.
[_AFX_THREAD_STATE]
* 스레드 단위로 정보를 관리하기 위한 클래스
* 스레드 마다 생성(스레드 단위의 전역 변수(TLS))
* 어플리케이션은 _AFX_THREAD_STATE를 이용하여 내부적으로 관리하는 스레드 정보에 접근할 수 있다.
내부적으로 관리하는 스레드 정보
- 현재 스레드의 마지막 메시지, 마우스 좌표, 훅 함수등...
- 보다 자세한 내용은 afxstat_.h의 _AFX_THREAD_STATE클래스 정의 부분을 참고.
* _AFX_THREAD_STAT의 주목적은 AFX_MODULE_STATE 클래스를 포함하기 위한 것이다.
[AFX_MODULE_STATE]
* 실행 모듈 정보를 관리하기 위한 클래스
* 실행 모듈 단위의 전역 변수
* 내부적으로 관리하는 정보
- 어플리케이션 객체 포인터
- 인스턴스 핸들
- 리스소 인스턴스 핸들
- 윈도우 프로시저 주소
- 런타임 클래스(CRuntimeClass)리스트
등... 보다 자세한 내용은 afxstat_.h의 AFX_MODULE_STATE클래스 정의 부분을 참고.
[AFX_MODULE_THREAD_STATE]
* 특정 모듈에서 특정 스레드가 생성하거나 설정한 정보를 관리하기 위한 클래스
* 스레드 마다 생성(스레드 단위의 전역 변수(TLS))
* 내부적으로 관리하는 정보
- 핸들맵 등...
보다 자세한 내용은 afxstat_.h의 AFX_MODULE_THREAD_STATE클래스 정의 부분을 참고.
참고.
* AFX_MANAGE_STATE
어떤 함수 안에서 현재 스레드의 AFX_MODULE_STATE 전환을 위해서 AfxSetModuleState함수를 직접 호출하는것보다는
AFX_MANAGE_STATE 매크로를 사용하는것이 편리하다.
* AfxGetAppModuleState()
MFC는 전체 모듈(실행을 위해 로드 되어 있는 .EXE와 모든 DLL)들을 논리적인 하나의 모듈로 보고, 이것을 위해 AFX_MODULE_STATE를 할당한다. 이렇게 할당된 AFX_MODULE_STATE 객체를 반환한다.
* AfxGetModuleState()
현재 실행 흐름(스레드)을 기준으로 AFX_MODULE_STATE 객체를 반환한다.
* AfxGetStaticModuleState()
항상 호출 시점의 모듈에 선언된 AFX_MODULE_STATE 객체를 반환한다.
출처 : http://dstein.egloos.com/2017307
MFC가 관리하는 상태정보는 3가지가 있다.
- 스레드 정보 : _AFX_THREAD_STATE
- 모듈 정보 : AFX_MODULE_STATE
- 모듈 스레드 정보 : AFX_MODULE_THREAD_STATE
_AFX_THREAD_STATE, AFX_MODULE_STATE, AFX_MODULE_THREAD_STATE 는 MFC 상태 정보 관리를 위해 사용되는 클래스이다.
[_AFX_THREAD_STATE]
* 스레드 단위로 정보를 관리하기 위한 클래스
* 스레드 마다 생성(스레드 단위의 전역 변수(TLS))
* 어플리케이션은 _AFX_THREAD_STATE를 이용하여 내부적으로 관리하는 스레드 정보에 접근할 수 있다.
내부적으로 관리하는 스레드 정보
- 현재 스레드의 마지막 메시지, 마우스 좌표, 훅 함수등...
- 보다 자세한 내용은 afxstat_.h의 _AFX_THREAD_STATE클래스 정의 부분을 참고.
* _AFX_THREAD_STAT의 주목적은 AFX_MODULE_STATE 클래스를 포함하기 위한 것이다.
[AFX_MODULE_STATE]
* 실행 모듈 정보를 관리하기 위한 클래스
* 실행 모듈 단위의 전역 변수
* 내부적으로 관리하는 정보
- 어플리케이션 객체 포인터
- 인스턴스 핸들
- 리스소 인스턴스 핸들
- 윈도우 프로시저 주소
- 런타임 클래스(CRuntimeClass)리스트
등... 보다 자세한 내용은 afxstat_.h의 AFX_MODULE_STATE클래스 정의 부분을 참고.
[AFX_MODULE_THREAD_STATE]
* 특정 모듈에서 특정 스레드가 생성하거나 설정한 정보를 관리하기 위한 클래스
* 스레드 마다 생성(스레드 단위의 전역 변수(TLS))
* 내부적으로 관리하는 정보
- 핸들맵 등...
보다 자세한 내용은 afxstat_.h의 AFX_MODULE_THREAD_STATE클래스 정의 부분을 참고.
참고.
* AFX_MANAGE_STATE
어떤 함수 안에서 현재 스레드의 AFX_MODULE_STATE 전환을 위해서 AfxSetModuleState함수를 직접 호출하는것보다는
AFX_MANAGE_STATE 매크로를 사용하는것이 편리하다.
* AfxGetAppModuleState()
MFC는 전체 모듈(실행을 위해 로드 되어 있는 .EXE와 모든 DLL)들을 논리적인 하나의 모듈로 보고, 이것을 위해 AFX_MODULE_STATE를 할당한다. 이렇게 할당된 AFX_MODULE_STATE 객체를 반환한다.
* AfxGetModuleState()
현재 실행 흐름(스레드)을 기준으로 AFX_MODULE_STATE 객체를 반환한다.
* AfxGetStaticModuleState()
항상 호출 시점의 모듈에 선언된 AFX_MODULE_STATE 객체를 반환한다.
출처 : http://dstein.egloos.com/2017307
'-- VC++' 카테고리의 다른 글
Predefined Macros (0) | 2009.10.01 |
---|---|
유니코드로 개발하기 (MFC프로젝트) (0) | 2009.09.24 |
socket connect timeout (0) | 2009.09.02 |
So you need a worker thread pool... (0) | 2009.08.11 |
Polling by sleeping vs polling by waiting with a timeout (0) | 2009.08.11 |
RECENT COMMENT