Develop

[c++] MFC 모든 헤더와 라이브러리 설명 | [교류]Programming

by hooni posted Apr 23, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
****************************************************************************
이 글은 Mike Blaszczak 의 책 "Professional MFC" 의 Appendix D 에 들어있는
내용을 번역한 글입니다. 제 허락없이는 다른 어떤게시판에도 옮기실수 없습니
다. 물론 글의 원 소유자는 Mike 입니다.
                                            MFC&T 사용자 모임 시삽 권정혁
============================================================================
MFC 헤더와 라이브러리 설명 (The Foundation Classes Headers and Libraries) #1

1. Header Files

아래 테이블은 모든 MFC 헤더 파일들과 사용 목적, 그리고 어떤 파일전에 어떤
파일들이 Include 될수 있는지에 대해 나와있습니다. 거의 모든 헤더들이 다른
헤더들에 의해 Include 된다는 것을 주의하십시오. 
당신의 코드에서 직접 Include 하는것은 약 4-5개 정도입니다. 

----------------------------------------------------------------------------
헤더 (Header)설명
----------------------------------------------------------------------------

Afx.h       Windows 를 사용(?)하지 않는 MFC 프로그램을 작성할때 Include 
            하는 Main Header 파일입니다. 콘솔용 MFC 응용프로그램을 작성할때
            이 헤더만 있으면 됩니다. 이것은 Windows 외에서 사용될수 있는 
            콜렉션 클래스와 Application Framework 클래스들를 포함한 모든 
            클래스를 선언합니다. 콘솔용 프로그램을 작성한다면 다른 MFC 헤더
            들을 Include 하기전에 이 파일을 Include 하여야 됩니다. 
            만약 윈도우용 프로그램을 작성한다면, 이 파일대신 Afxwin.h 를 
            사용하십시오.

Afxcmn.h    이 파일은 윈도우의 공용 컨트롤(Common Control)에 대한 Definition
            들을 가지고 있습니다. Afxwin.h 를 Include하지 않았다면 이 파일을
            사용할수 없습니다.
            
Afxcoll.h   이 파일은 MFC 컨테이너 클래스들에 대한 Declaration(선언)을 
            가지고 있습니다. 이 파일은 Afx.h 의 내용에 의존합니다. 
            Afxcoll.h 는 CObject-style 과 type-safe 콜렉션에 대한 
            Definition 을 포함하고 있습니다. 템플릿 콜렉션 클래스들은 
            Afxtempl.h 안에 있습니다.

Afxctl.h    이 파일은 ActiveX 컨트롤을 작성하는데 필요한 클래스와 선언들을 
            가지고 있습니다. 컨트롤 작성 프로젝트에서는 이 파일을 Afx.h 나 
            Afxwin.h 대신에 Include 해야 합니다.

Afxcview.h  이 파일은 Tree 와 List 공용 컨트롤을 기초로 하는 CView 파생 
            클래스들에 대한 Definition 들을 가지고 있습니다. 이 파일은 좀더
            작고 효율적인 링킹을 위해 Afxwin.h 와 Afxcmn.h 파일로부터 
            분리되었으며, 이것은 좀더 작고 빠른 실행화일을 생성할수 있도록 
            해줍니다. 만약 CTreeView 나 CListView를 사용한다면 Afxwin.h 파일
            다음에 이것을 Include 하여야 합니다.
            
Afxdao.h    이 파일은 DAO 에 기반한 데이터 억세스를 지원하기 위한 클래스들
            (CDaoDatabase 와 CDaoRecordset 같은)을 담고있습니다. 이 헤더가 
            필요하다면 Afxwin.h 와 Afxdisp.h 다음에 Include 하여야 합니다.
            
Afxdb.h     이 파일은 ODBC 에 기반한 데이타 베이스 프로그램을 개발하기 위한
            클래스들(CDatabase 와 CRecordset 같은)을 담고 있습니다. 
            이 파일은 또한  "RFX_*" 와 같은 [레코드 필드 교환 명령]들 같은 
            데이터베이스 프로그램 개발에 필요한 전역 함수들을 정의하고 
            있습니다. 데이터베이스 클래스를 사용하려면 먼저 Afx.h 와 
            Afxwin.h 를 Include 한다음 이 파일을 Include 하여야 합니다.

Afxdb_.h    이 파일은 ODBC 와 DAO 에 공통적인 definition 들과 클래스들을 
            포함하고 있습니다. 이 파일은 전혀 Include 할 필요가 없습니다. 
            이것은 Afxdb.h 나 Afxdao.h 를 Include 할때 따라오게 됩니다.
            
Afxdd_.h    이 파일은 다이알로그 데이타 교환(DDX) 함수들에 대한 선언들을 
            포함하고 있습니다. 끝이 _ 로 끝나는 다른 화일들과 마찬가지로, 
            이 파일도 직접 Include 할 필요가 없습니다. 
            이것은 Afxwin.h 에 의해 포함됩니다. 

Afxdisp.h   이 파일은 COM dispatch인터페이스에 대한 선언과 정의들을 포함하고
            있윱求?이것은 CCmdTarget에 의해 처리되는 Automation을 작성하기
            위한 모든 확장들과 MFC 가 COM 프로그램을 쉽게 하기위해 제공하는 
            모든 자료형들, Wrapper 클래스들을 포함하고 있습니다. 
            COM 을 사용할때만 이 파일을 Include 하십시오. 만약 그렇지 않으면 
            필요치 않은 런타임DLL들에 연결되게 되며,이것은 작성된 프로그램의
            시작을 느리게 할것입니다. 이 파일은 Afxwin.h 뒤에 Include 되어야
            합니다. 만약 Afxcmn.h 를 사용하고 있고, OLE 클래스들을 사용할 
            필요가 있다면 이 파일을 Include하십시오

Afxdlgs.h   MFC 의 확장 다이알로그 클래스들이 이 파일에 선언되어 있습니다. 
            이 클래스들은 CPropertySheet와 CPropertyPage를 포함하여 윈도우의
            공통 대화상자(Common Dialog)에 대한 MFC Wrapper 들입니다. 
            이 파일은 Afxext.h 에 의해 포함되게 됩니다.
            
Afxdllx.h   이 파일은 MFC 확장DLL을 작성할때 소스 모듈들에 포함되는 소스코드
            를 포함하고 있습니다.(ExtRawDllMain) 
            
Afxdll_.h   이 파일은 MFC 가 확장 DLL 에 대한 정보를 관리하도록 도와주는 
            클래스들을 포함하고 있습니다. 
            이 파일은 당신의 프로그램이 _AFXDLL Precompiler플래그를 사용하여
            작성될때 Afxwin.h 에 의해 포함됩니다. 

Afxext.h    Afxext.h 화일은 '확장' MFC클래스들을 선언합니다. 
            이것은 CStatusBar와 CToolBar같은 진보된 User-Interface클래스들을
            포함하고 있습니다. 이 클래스들을 사용한다면, 먼저 Afxwin.h 를 
            포함하십시오.

Afxinet.h   CHttpConnection 같은 클래스들을 선언합니다. 이 파일에 선언된 
            클래스들을 인터넷 클라이언트 프로그램을 작성가능하게 합니다.

Afxisapi.h  ISAPI 인터페이스를 사용하는 인터넷 서버 프로그램 작성용 클래스들 
            선언입니다.

Afxmsg_.h   이 파일은 간접적으로 Afxwin.h에 의해 참조됩니다. 따로 Include 할
            필요는 없습니다. 메시지맵 항목들에 대한 정의를 포함하고 있습니다

Afxmt.h     Multithreaded Application 을 위한 동기화(Synchronization) 객체를
            포함하고 있습니다. 이 클래스들은 Console 프로그램에서도 사용이
            가능하며, 먼저 Afx.h 를 Include 해야 합니다.

Afxodlgs.h  이 파일은 MFC 에서의 OLE 대화상자 구현을 위한 클래스 선언들을
            포함하고 있습니다. 만약 이 대화상자들 사용하거나 서브클래싱 할
            경우에는 이 파일을 직접 Include 하여야 합니다.
            물론 먼저 Afxwin.h 가 Include 되어야 합니다.

Afxole.h    이 파일은 OLE를 위한 핵심 클래스들을 선언하고 있습니다.
            이 클래스들은 COleDocument 기반의 클래스들과 OLE 아이템들 그리고
            그들과 같이 사용되는 Drag-and-Drop 지원을 포함합니다. 프로그램이
            OLE 를 사용한다면 Afxwin.h 다음에 이 파일을 포함해야 합니다.

Afxplex_.h  이 파일은 MFC 에서 CObject기반의 콜렉션 클래스들 구현에 사용되는
            CPlex 클래스를 구현하고 있습니다. 

Afxpriv.h   이 파일은 MFC 구현에 필요한 내부적인(사적인) 것을을 포함하고 
            있습니다. 만약 안을 들여다본다면, 당신의 일을 도와줄수 있는 
            깔끔한 자료구조나 클래스들을 찾을수 있을겁니다. 
            하지만, 조심해서 사용하십시오. 이 파일에 있는 것들은 MFC 버젼이 
            바뀌면 예고없이 바뀔수도 있습니다. 
            이런것을 인지한 다음에 직접 Include 하여 사용하십시오. 

Afxres.h    이 파일은 MFC 프로그램을 위한 Resource Script(.rc 파일) 에 의해 
            사용됩니다.(Include 됩니다.) 
            이 파일은 Afxwin.h 에 의해 간접적으로 참조됩니다. 
            이 파일은 거의 직접 참조될 필요가 없습니다. 이 파일은 미리 
            정의된 모든 MFC 리소스들에 대한 Preprocessor Symbol Definition 
            들을 포함합니다. 

Afxrich.h   이 파일은 CRichEditCtrl 과 관련된 약간의 클래스들에 대한 정의를 
            포함하고 있습니다. 만약 Rich Edit컨트롤을 사용한다면 Afxcmn.h와
            Afxwin.h 다음에 이 파일을 Include 해야 합니다. 또한 Afxole.h 
            파일도 Include 되어야 합니다.Rich Edit 컨트롤은 매우 강력합니다
            이것은 완벽하게 OLE 를 지원합니다.

Afxsock.h   CSocket 과 CAsyncSocket 클래스에 대한 정의를 포함하고 있습니다.
            이 클래스들은 Windows Sockets API(네트워크 기반의 통신 API)를
            감쌉니다.(Wrapping)

Afxstat_.h  이 파일은 동작중인 프로그램에 대해 MFC 가 관리하는 상태정보 
            저장용 구조체들을 정의합니다. 이 상태정보는 MFC 에 의해 
            사용되며 프로그램이 어떻게 동작해야 할지를 알수 있게 합니다. 
            이 파일은 직접적으로는 참조되지 않으며, Afx.h에 의해 Include
            됩니다.

Afxtempl.h  이 파일은 MFC 콜렉션 클래스들에 대한 템플릿 기반의 구현들을 
            포함하고 있습니다. Afx.h 뒤에 Include 되어야 합니다.  

Afxtls_.h   MFC 가 각 어플리케이션별 또는 쓰레드별 상태정보를 관리하기 위한 
            Thread-Local Storage 매크로 들을 포함합니다. 이 매크로들은 
            Afxstat_.h 에 있는 많은 구조체들에 의해 사용되며, 이 파일은 
            직접적으로 참조되지 않습니다. Afx.h 에 의해 참조됩니다.

Afxver_.h   이 파일은 MFC 프로그램이 만들어질때(Build) 여러가지 설정을 위해 
            사용되는 많은 Preprocessor macro 들을 가지고 있는 중요한 파일
            입니다. 당신이 MFC 어플리케이션을 Build 할때 이 헤더는 당신의 
            프로그램이 정확하게 MFC 에 링크되는지를 확인하는 약간의 설정도 
            추가하게 됩니다. 이 파일은 전혀 직접 참조할 필요가 없으며, 
            실제로 이 파일을 읽어볼 필요도 없습니다. 이 파일은 아주 
            저수준(Low-Level)의 매크로와 내부구현들로 가득차 있기때문입니다.

Afxv_cfg.h  이 파일은 한가지의 일을 합니다: 이것은 _AFX_PORTABLE 이란 
            플래그에 의해 동작됩니다. 만약 당신이 MFC 를 Build 하기위해 
            제작되지 않은 컴파일러(Watcom 이나 Symantec 등)를 사용한다면 
            Preprocessor 심볼인 _CUSTOM 을 정의하여 이 파일이 Include되도록
            해야 합니다. 이 파일은 절대로 어플리케이션에 의해 직접적으로 
            참조되지 않으면, 일반적인 상황에서는 MFC 에 의해 전혀 사용되지
            않습니다. 

Afxv_cpu.h  Afxver_.h 에 의해 참조되며,이 파일은 Macintosh,Power PC,MIPS,
            Alpha용 MFC 에 대한 약간의 설정을 합니다. 이 파일은 절대로 
            어플리케이션에 의해 직접적으로 참조되지 않습니다.

Afxv_dll.h  이 파일은 DLL 기반의 MFC Build 에 대한 설정을 하기위해 
            사용됩니다. 이 파일은 DLL Build에 대한 많은 특수심볼을 정의하여
            DLL 의 Segment Layout 을 최적으로 만듭니다. 이것은 Afxver_.h 에
            의해 참조되며 절대로 어플리케이션에 의해 직접적으로 참조되지 
            않습니다.

Afxv_mac.h  이 파일은 Macintosh용 MFC 에 대한 여분의 설정변경을 가지고 
            있습니다. 이것은 Afxver_.h에 의해 참조되며 절대로 어플리케이션에
            의해 직접적으로 참조되지 않습니다.

Afxv_w32.h  이 파일은 Win32 용 MFC 를 설정합니다. 이것은 항상 Include 되며, 
            이것은 MFC 가 Win32 의 변형들(Win32s,Win32c..) 상에서 동작될때도
            마찬가지입니다. 이 파일은 시스템관련, 표준 C, C++ Include 파일을
            참조하게됩니다.이 파일이 Windows.h와 그 친구들을 불러오는 
            파일입니다. (또한 Tchar.h 나 String.h 같은 헤더도 포함됩니다.) 

Afxwin.h    이 파일이 윈도우 상에서 동작하는 MFC 어플리케이션에 대한 주 헤더
            (Primary Header) 파일입니다. Windows 용 프로그램을 작성한다면 
            Afx.h 후에 이 파일을 Include 하십시오. 콘솔 프로그램을 만든다면 
            이 파일을 사용하지 마십시요. 
            이 파일은 CWnd 와 CWnd의 파생 클래스와 같은 기본클래스들을 정의
            합니다.

Winres.h    이 파일은 MFC 어플리케이션에 의해 사용되는 Resource Identifier 
            들에 대한 부분집합을 정의합니다. 이것은 Afxres.h에 의해 참조되며
            Windows의 헤더가 일반적으로 정의하는 것들의 부분집합을 
            제공합니다. MFC 어플리케이션에서 직접 참조되지 않습니다.


[출처] http://www.devpia.com/forum/BoardView.aspx?no=567&page=1&Tpage=1&forumname=vc_lec&stype=&ctType=&answer=&KeyR=titlecontent&KeyC=