================================================================================ MFC 라이브러리 : [!output PROJECT_NAME] 프로젝트 개요 =============================================================================== 응용 프로그램 마법사에서 이 [!output PROJECT_NAME] 응용 프로그램을 만들었습니다. 이 응용 프로그램은 MFC의 기본 사용법을 보여 줄 뿐만 아니라 응용 프로그램을 작성하기 위한 기본 구조를 제공합니다. [!output PROJECT_NAME] 응용 프로그램을 구성하는 각 파일에 대한 요약 설명이 포함되어 있습니다. [!output PROJECT_NAME].vcxproj 응용 프로그램 마법사를 사용하여 생성한 VC++ 프로젝트의 기본 프로젝트 파일입니다. 파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한 플랫폼, 구성 및 프로젝트 기능에 대한 정보가 포함되어 있습니다. [!output PROJECT_NAME].vcxproj.filters 응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 필터 파일입니다. 이 파일에는 프로젝트의 파일과 필터 간의 연결 정보가 들어 있습니다. 이러한 연결은 특정 노드에서 유사한 확장명으로 그룹화된 파일을 표시하기 위해 IDE에서 사용됩니다. 예를 들어 ".cpp" 파일은 "소스 파일" 필터와 연결되어 있습니다. [!output APP_HEADER] 해당 응용 프로그램의 기본 헤더 파일입니다. 여기에는 resource.h를 비롯한 다른 프로젝트별 헤더가 포함되어 있으며 [!output APP_CLASS] 응용 프로그램 클래스가 선언되어 있습니다. [!output APP_IMPL] 이는 응용 프로그램 클래스 [!output APP_CLASS]가 포함된 기본 응용 프로그램 소스 파일입니다. [!output RC_FILE_NAME] 프로그램에서 사용하는 모든 Microsoft Windows 리소스의 목록입니다. 여기에는 RES 하위 디렉터리에 저장된 아이콘, 비트맵 및 커서가 포함됩니다. 이 파일은 Microsoft Visual C++에서 직접 편집할 수 있습니다. 프로젝트 리소스는 [!output LCID]에 있습니다. res\[!output PROJECT_NAME].ico 아이콘 파일이며, 응용 프로그램의 아이콘으로 사용됩니다. 이 아이콘은 기본 리소스 파일인 [!output PROJECT_NAME].rc에 의해 포함됩니다. res\[!output RC2_FILE_NAME].rc2 이 파일에는 Microsoft Visual C++ 이외의 다른 도구에서 편집한 리소스가 포함되어 있습니다. 리소스 편집기로 편집할 수 없는 모든 리소스는 이 파일에 넣어야 합니다. [!if CONTAINER_SERVER || FULL_SERVER || MINI_SERVER || AUTOMATION || HAS_SUFFIX] [!if !HTML_EDITVIEW] [!output PROJECT_NAME].reg 프레임워크에서 설정될 등록 설정의 유형을 보여 주는 예제 .reg 파일입니다. 이 파일을 .reg 파일로 사용하여 [!if APP_TYPE_DLG] 응용 프로그램과 함께 사용할 수 있습니다. [!else] 응용 프로그램과 함께 사용하거나 또는 이를 삭제하고 기본값인 RegisterShellFileTypes 등록을 사용할 수 있습니다. [!endif] [!if AUTOMATION] [!output SAFE_IDL_NAME].idl 이 파일에는 응용 프로그램의 형식 라이브러리에 대한 인터페이스 정의 언어 소스 코드가 포함되어 있습니다. [!endif] [!endif] [!endif] [!if !APP_TYPE_DLG] ///////////////////////////////////////////////////////////////////////////// 주 프레임 창: [!if PROJECT_STYLE_EXPLORER] Windows 탐색기 스타일: 이 프로젝트에는 두 개의 프레임이 있는 Windows 탐색기 형태의 인터페이스 및 [!else] 표준 MFC 인터페이스가 포함됩니다. [!endif] [!output MAIN_FRAME_HEADER], [!output MAIN_FRAME_IMPL] 이 파일에는 프레임 클래스인 [!output MAIN_FRAME_CLASS]가 포함되어 있습니다. [!if APP_TYPE_MDI || APP_TYPE_TABBED_MDI] [!if APP_TYPE_MDI] 이는 CMDIFrameWnd에서 파생되었으며 모든 MDI 프레임 기능을 제어합니다. [!else] 이는 CMDITabbedFrameWnd에서 파생되었으며 모든 MDI 프레임 기능을 제어합니다. [!endif] [!else] 이는 CFrameWnd에서 파생되었으며 모든 SDI 프레임 기능을 제어합니다. [!endif] [!if PROJECT_STYLE_EXPLORER] [!output TREE_VIEW_HEADER], [!output TREE_VIEW_IMPL] 이 파일에는 CTreeView에서 파생되는 왼쪽 프레임 클래스인 [!output TREE_VIEW_CLASS]가 들어 있습니다. [!endif] [!if DOCKING_TOOLBAR || TOOLBAR_STYLE_REBAR || MENUBAR_TOOLBAR || RIBBON_TOOLBAR] res\Toolbar.bmp 이 비트맵 파일은 도구 모음의 바둑판식 이미지를 만드는 데 사용됩니다. 초기 도구 모음과 상태 표시줄은 [!output MAIN_FRAME_CLASS] 클래스에서 생성됩니다. 이 도구 모음 비트맵을 리소스 편집기로 편집하고, [!output PROJECT_NAME].rc의 IDR_MAINFRAME TOOLBAR 배열을 업데이트하여 도구 모음 단추를 추가합니다. [!if MINI_SERVER || FULL_SERVER || CONTAINER_SERVER] res\IToolbar.bmp 이 비트맵 파일은 서버 응용 프로그램이 다른 컨테이너 속에서 내부 활성화될 때 도구 모음의 바둑판식 이미지를 만드는 데 사용됩니다. 이 도구 모음은 [!output INPLACE_FRAME_CLASS] 클래스에서 생성됩니다. 이 비트맵은 비서버 명령이 다수 제거된 것을 제외하고는 res\Toobar.bmp에 있는 비트맵과 유사합니다. [!endif] [!endif] [!if APP_TYPE_MDI || APP_TYPE_TABBED_MDI] ///////////////////////////////////////////////////////////////////////////// 자식 프레임 창: ChildFrm.h, ChildFrm.cpp 이 파일은 MDI 응용 프로그램에서 자식 창을 지원하는 [!output CHILD_FRAME_CLASS] 클래스를 정의하고 구현합니다. [!endif] ///////////////////////////////////////////////////////////////////////////// [!if DOCVIEW] [!if !DB_VIEW_NO_FILE] 응용 프로그램 마법사에서 문서 형식과 뷰를 한 개씩 만듭니다. [!output DOC_HEADER], [!output DOC_IMPL] - 문서 이 파일에는 [!output DOC_CLASS] 클래스가 포함됩니다. 이 파일을 편집하여 특수 문서 데이터를 추가하고 [!output DOC_CLASS]::Serialize를 통해 파일 저장 및 로드를 구현합니다. [!if HAS_SUFFIX && !HTML_EDITVIEW] 문서에는 다음과 같은 문자열이 있습니다. 파일 확장명: [!output FILE_EXTENSION] 파일 형식 ID: [!output FILE_TYPE_ID] 주 프레임 캡션: [!output MAIN_FRAME_CAPTION] Doc 형식 이름: [!output DOC_TYPE_NAME] 필터 이름: [!output FILTER_NAME] 파일의 새 약식 이름: [!output FILE_NEW_NAME_SHORT] 파일 형식의 긴 이름: [!output FILE_NEW_NAME_LONG] [!endif] [!else] 응용 프로그램 마법사에서 뷰 하나를 만듭니다. [!endif] [!output VIEW_HEADER], [!output VIEW_IMPL] - 문서 뷰 이 파일에는 [!output VIEW_CLASS] 클래스가 포함됩니다. [!if !DB_VIEW_NO_FILE] [!output VIEW_CLASS] 개체는 [!output DOC_CLASS] 개체를 보는 데 사용됩니다. [!endif] [!if APP_TYPE_MDI || APP_TYPE_TABBED_MDI] res\[!output PROJECT_NAME]Doc.ico 아이콘 파일이며, [!output DOC_CLASS] 클래스 MDII 자식 창의 아이콘으로 사용됩니다. 이 아이콘은 기본 리소스 파일인 [!output PROJECT_NAME].rc에 의해 포함됩니다. [!endif] [!endif] [!if DB_VIEW_NO_FILE || DB_VIEW_WITH_FILE] ///////////////////////////////////////////////////////////////////////////// 데이터베이스 지원: [!output ROWSET_HEADER], [!output ROWSET_IMPL] 이 파일에는 [!output ROWSET_CLASS] 클래스가 포함됩니다. 이 클래스는 마법사에서 지정한 데이터 소스에 액세스하는 데 사용됩니다. [!if DB_VIEW_NO_FILE] serialization 지원이 추가되지 않습니다. [!else] Serialization 지원이 추가되었습니다. [!endif] [!endif] [!if CONTAINER || FULL_SERVER || MINI_SERVER || CONTAINER_SERVER] ///////////////////////////////////////////////////////////////////////////// 응용 프로그램 마법사에서 OLE와 관련된 클래스도 만들었습니다. [!if CONTAINER || CONTAINER_SERVER] [!output CONTAINER_ITEM_HEADER], [!output CONTAINER_ITEM_IMPL] 이 파일에는 [!output CONTAINER_ITEM_CLASS] 클래스가 포함됩니다. 이 클래스는 OLE 개체를 조작하는 데 사용됩니다. OLE 개체는 보통 [!output VIEW_CLASS] 클래스에 의해 표시되며 일부 [!output DOC_CLASS] 클래스로 serialize됩니다. [!if ACTIVE_DOC_CONTAINER] 이 프로그램은 해당 프레임 내에 활성 문서를 포함하도록 지원합니다. [!endif] [!endif] [!if MINI_SERVER || FULL_SERVER || CONTAINER_SERVER] [!output SERVER_ITEM_HEADER], [!output SERVER_ITEM_IMPL] 이 파일에는 [!output SERVER_ITEM_CLASS]가 포함됩니다. 이 클래스는 [!output DOC_CLASS] 클래스를 OLE 시스템에 연결하는 데 사용되고, 문서에 대한 링크를 선택적으로 제공합니다. [!if ACTIVE_DOC_SERVER] 프로젝트에서 활성 문서를 만들고 관리할 수 있습니다. [!endif] [!output INPLACE_FRAME_HEADER], [!output INPLACE_FRAME_IMPL] 이 파일에는 [!output INPLACE_FRAME_CLASS]가 포함됩니다. 이 클래스는 COlelPFrameWnd에서 파생되었으며 내부 활성화 동안 모든 프레임 기능을 제어합니다. [!endif] [!if SUPPORT_COMPOUND_FILES] 프로젝트는 복합 파일을 지원합니다. 복합 파일 서식은 자동화 개체가 하나 이상 들어있는 문서를 파일 하나에 저장하고 개별 개체에 대한 엑세스를 지속적으로 허용합니다. [!endif] [!endif] [!else] ///////////////////////////////////////////////////////////////////////////// [!if AUTOMATION] 응용 프로그램 마법사에서 대화 상자 클래스 하나 및 자동화 프록시 클래스를 만듭니다. [!else] 응용 프로그램 마법사에서 대화 상자 클래스 하나를 만듭니다. [!endif] [!output DIALOG_HEADER], [!output DIALOG_IMPL] - 대화 상자 이 파일에는 [!output DIALOG_CLASS] 클래스가 포함됩니다. 이 클래스는 응용 프로그램의 주 대화 상자에 대한 동작을 정의합니다. 이 대화 상자 템플릿은 [!output PROJECT_NAME].rc에 있으며, Microsoft Visual C++에서 직접 편집할 수 있습니다. [!if AUTOMATION] [!output DIALOG_AUTO_PROXY_HEADER], [!output DIALOG_AUTO_PROXY_IMPL] - 자동화 개체 이 파일에는 [!output DIALOG_AUTO_PROXY_CLASS] 클래스가 포함됩니다. 이 클래스는 자동화 컨트롤러가 대화 상자 엑세스에 사용할 수 있는 자동화 메서드 및 속성 노출을 처리하므로 대화 상자에 대한 자동화 프록시 클래스라고 합니다. 모달 대화 상자 기반 MFC 응용 프로그램의 경우 자동화 개체를 사용자 인터페이스에서 분리하기가 더욱 명확하고 쉽기 때문에 대화 상자 클래스에서 이 메서드 및 속성이 직접 노출될 수 없습니다. [!endif] [!endif] [!if ACTIVEX_CONTROLS || PRINTING || SPLITTER || MAPI || SOCKETS] ///////////////////////////////////////////////////////////////////////////// 기타 기능: [!if ACTIVEX_CONTROLS] ActiveX 컨트롤 응용 프로그램이 Active X 컨트롤을 지원합니다. [!endif] [!if PRINTING] 인쇄 및 인쇄 미리 보기 지원 MFC 라이브러리의 CView 클래스에서 멤버 함수를 호출하여 응용 프로그램 마법사에서 인쇄, 인쇄 설정 및 인쇄 미리 보기 명령 코드를 생성할 수 있습니다. [!endif] [!if DB_SUPPORT_HEADER_ONLY && !APP_TYPE_DLG] 데이터베이스 지원 응용 프로그램 마법사에 프로그램에 대한 기본적인 수준의 데이터베이스 지원이 추가되었습니다. 필요한 파일만 포함되어 있습니다. [!endif] [!if SPLITTER && !APP_TYPE_DLG] 분할 창 응용 프로그램 마법사에 응용 프로그램 문서에 대한 분할 창 지원이 추가되었습니다. [!endif] [!if MAPI] MAPI 지원 생성된 프로젝트에 메일 메시지를 만들고, 조작하고, 전달하고, 저장하는 데 필요한 코드가 들어 있습니다. [!endif] [!if SOCKETS] Windows 소켓 응용 프로그램에서 TCP/IP 네트워크를 통한 통신을 구축할 수 있습니다. [!endif] [!endif] ///////////////////////////////////////////////////////////////////////////// 기타 표준 파일: StdAfx.h, StdAfx.cpp 이 파일은 미리 컴파일된 헤더(PCH) 파일 [!output PROJECT_NAME].pch와 미리 컴파일된 형식(PCT) 파일 StdAfx.obj를 빌드하는 데 사용됩니다. Resource.h 새 리소스 ID를 정의하는 표준 헤더 파일입니다. Microsoft Visual C++에서 이 파일을 읽고 업데이트합니다. [!if MANIFEST] [!output PROJECT_NAME].manifest 응용 프로그램 매니페스트 파일은 Windows XP에서 특정 버전의 Side-by-Side 어셈블리에 대한 응용 프로그램 종속성을 설명하는 데 사용됩니다. 로더는 이 정보를 통해 어셈블리 캐시 또는 응용 프로그램의 private에서 적절한 어셈블리를 로드합니다. 응용 프로그램 매니페스트는 응용 프로그램 실행 파일과 같은 폴더에 설치된 외부 .manifest 파일 형태로서 재배포용으로 포함되거나, 리소스 형태로 된 실행 파일에 포함될 수 있습니다. [!endif] ///////////////////////////////////////////////////////////////////////////// 기타 참고: 응용 프로그램 마법사에서 사용하는 "TODO:"는 사용자가 추가하거나 사용자 지정해야 하는 소스 코드 부분을 나타냅니다. [!if APP_TYPE_MDI || APP_TYPE_TABBED_MDI || APP_TYPE_SDI || APP_TYPE_DLG || APP_TYPE_MTLD] 공유된 DLL에서 MFC를 사용하는 응용 프로그램의 경우 MFC DLL을 재배포할 필요가 없습니다. 응용 프로그램에서 운영 체제의 로캘과 다른 언어를 사용하는 경우 이에 해당하는 지역화된 리소스인 mfc110XXX.DLL도 재배포해야 합니다. 이러한 두 항목에 대한 자세한 내용은 MSDN 설명서에 있는 Visual C++ 응용 프로그램 재배포 섹션을 참조하십시오. [!endif] /////////////////////////////////////////////////////////////////////////////