MFC와 형식 라이브러리를 사용하여 자동화 프로젝트를 만드는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 178749 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 Microsoft Office 응용 프로그램 같은 COM 호환 응용 프로그램과 구성 요소 통합을 자동화하는 방법을 자세히 설명합니다.

추가 정보

다음 절에서는 MFC 프로젝트를 만드는 방법을 설명합니다. 예제는 Microsoft Excel을 자동화합니다. 모든 프로젝트에 대해서는 처음 8단계를 사용하고 다른 응용 프로그램에서 작업할 때는 9-15단계를 수정합니다.

자동화 프로젝트 만들기

  1. Microsoft Developer Studio에서 "AutoProject"라는 새로운 "MFC AppWizard (exe)" 프로젝트를 시작합니다.
  2. MFC AppWizard의 1단계에서 응용 프로그램에 대해 "Dialog Based"를 선택한 다음 Finish를 누릅니다.

    New Project Information 대화 상자가 나타나고 만들 클래스에 다음 내용이 포함된다고 표시됩니다.
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    OK를 눌러 프로젝트를 만듭니다.
  3. 대화 상자 "IDD_AUTOPROJECT_DIALOG"가 Visual Studio design/edit 영역에서 열립니다. 다음 두 단계의 지시에 따라 내용을 수정합니다.
  4. Label 컨트롤(IDC_STATIC)과 Cancel 단추(IDCANCEL)를 제거합니다.
  5. OK 단추의 이름은 "IDRUN"으로, Caption은 "Run"으로 변경합니다. AutoProject.rc 대화 상자 디자인 양식을 닫습니다.
  6. View 메뉴에서 ClassWizard를 누르거나 Ctrl+W를 누릅니다.
  7. Message Maps 탭을 선택합니다. Object Ids 목록 상자에서 IDRUN을 선택하고 Messages list 상자에서 "BN_CLICKED"를 선택합니다. Add Function을 누르고 함수 이름 "OnRun"을 적용합니다. OK를 눌러 ClassWizard를 닫습니다.

    참고: 이 단계는 함수 구성원 "OnRun();"에 대한 선언을 AutoProjectDLG.h라는 헤더 파일에 추가합니다. 또한 CAutoProjectDlg::OnRun()이라는 빈 골격 메시지 처리기 함수를 AutoProjectDLG.cpp라는 파일에 추가합니다.
  8. View 메뉴에서 ClassWizard를 누르거나 Ctrl+W를 누릅니다.
  9. Automation 탭을 선택합니다. Add Class를 누르고 "From a type library"를 선택합니다. 자동화할 응용 프로그램의 개체 라이브러리를 선택합니다. 이 예제에서 Excel 97을 자동화하는 경우 Microsoft Excel 8.0 개체 라이브러리를 선택합니다. 기본 위치는 C:\Program Files\Microsoft Office\Office\Excel8.olb입니다.

    Microsoft Excel 2000을 자동화하는 경우 기본 위치가 C:\Program Files\Microsoft Office\Office\Excel9.olb인 Microsoft Excel 9.0 개체 라이브러리를 선택합니다.

    Microsoft Excel 2002와 Microsoft Office Excel 2003을 자동화하는 경우 개체 라이브러리는 Excel.exe 파일에 포함됩니다. Office 2002에서 Excel.exe의 기본 위치는 C:\program Files\Microsoft Office\Office10\Excel.exe입니다. Office 2003에서 Excel.exe의 기본 위치는 C:\program Files\Microsoft Office\Office11\Excel.exe입니다. 적절한 개체 라이브러리를 선택했으면 Open을 누릅니다. Confirm Classes 목록에서 모든 클래스를 선택한 다음 OK를 누릅니다.

    참고: Confirm Classes 대화 상자의 목록 상자에는 Microsoft Excel 형식 라이브러리의 모든 IDispatch 인터페이스(거의 클래스와 동일)가 포함되어 있습니다. 대화 상자 아래쪽에서 Excel8.cpp라는 구현 파일에 ColeDispatchDriver()에서 추출하여 생성된 클래스 래퍼가 들어 있으며 해당 선언 헤더 파일 이름이 Excel8.h인 것을 볼 수 있습니다. Excel 2002와 Excel 2003의 경우 파일 이름은 Excel.cpp 및 Excel.h입니다.
  10. OK를 눌러 MFC ClassWizard 대화 상자를 닫습니다.
  11. COM 서비스 라이브러리를 로드하고 활성화하는 CAutoProjectApp::InitInstance() 함수에 다음 코드를 추가합니다.
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. AutoProject.cpp 프로그램 파일 맨 위에 있는 #include 문에 다음 줄을 추가합니다.
          #include <afxdisp.h>
    					
  13. AutoProjectDlg.cpp 프로그램 파일 맨 위에 있는 stdafx.h용 include 문 다음에 excel8.h용 include 문을 추가합니다.
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. 아래와 같이 나타나도록 CAutoProjectDlg::OnRun()에 자동화 코드를 추가합니다.
          void CAutoProjectDlg::OnRun()
          {
              _Application app;  // app is the Excel _Application object
    
              // Start Excel and get Application object...
             if(!app.CreateDispatch("Excel.Application"))
             {
                AfxMessageBox("Couldn't start Excel.");
             }
             else
             {
                //Make Excel Visible and display a message
              app.SetVisible(TRUE);
              AfxMessageBox ("Excel is Running!");
             }
          }
    					
  15. 프로젝트를 빌드하고 실행합니다. 그 결과, 대화 상자에서 Run 단추를 누르면 Microsoft Excel이 시작됩니다. Auto_Excel 대화 상자를 활성화하고 메시지 상자를 닫습니다. CAutoProjectDlg::OnRun() 함수가 끝나면 응용 프로그램 변수가 범위를 벗어나므로 Microsoft Excel이 종료됩니다.

추가 정보

형식 라이브러리의 클래스를 위의 9단계에서 했던 것처럼 프로젝트에 추가하면 많은 클래스가 프로젝트에 추가된 것을 볼 수 있습니다. 클래스 뷰에서 클래스를 두 번 누르면 해당 클래스의 구성원 함수가 나타나고, 구성원 함수를 두 번 누르면 Excel8.cpp의 구현 파일에 있는 해당 함수에 대한 정의가 나타납니다.

그러므로 반환 형식을 확인하거나 함수의 구현을 변경하려면 구성원 함수에 대한 정의로 이동해야 합니다. 함수 정의를 변경할 때마다 Excel8.h 파일에서 선언을 변경해야 합니다. 이렇게 할 때 올바른 함수 선언을 변경하는지 확인하십시오. 여러 클래스의 구성원 함수에 같은 이름이 지정되는 경우가 가끔 있습니다. GetApplication()이 이러한 예의 하나입니다.

위의 단계에서는 Microsoft Excel을 자동화하는 방법을 보여주었지만, 다른 응용 프로그램을 자동화할 때도 이와 같은 방법을 적용할 수 있습니다. 아래의 목록에는 다른 Microsoft Office 응용 프로그램의 형식 라이브러리에 대한 파일 이름이 나와 있습니다.
   응용 프로그램                              형식 라이브러리
   --------------------------------------------------

   Microsoft Access 97                   Msacc8.olb
   Microsoft Jet Database 3.5            DAO350.dll
   Microsoft Binder 97                   Msbdr8.olb
   Microsoft Excel 97                    Excel8.olb
   Microsoft Graph 97                    Graph8.olb
   Microsoft Office 97                   Mso97.dll
   Microsoft Outlook 97                  Msoutl97.olb
   Microsoft PowerPoint 97               Msppt8.olb

   Microsoft Word 97                     Msword8.olb
   Microsoft Access 2000                 Msacc9.olb
   Microsoft Jet Database 3.51           DAO360.dll
   Microsoft Binder 2000                 Msbdr9.olb
   Microsoft Excel 2000                  Excel9.olb
   Microsoft Graph 2000                  Graph9.olb
   Microsoft Office 2000                 Mso9.dll
   Microsoft Outlook 2000                Msoutl9.olb
   Microsoft PowerPoint 2000             Msppt9.olb
   Microsoft Word 2000                   Msword9.olb

   Microsoft Access 2002                 Msacc.olb
   Microsoft Excel 2002                  Excel.exe
   Microsoft Graph 2002                  Graph.exe
   Microsoft Office 2002                 MSO.dll
   Microsoft Outlook 2002                Msoutl9.olb
   Microsoft PowerPoint 2002             MSPpt.olb
   Microsoft Word 2002                   MSWord.olb

   Microsoft Office Access 2003          Msacc.olb
   Microsoft Office Excel 2003           Excel.exe
   Microsoft Graph 2003                  Graph.exe
   Microsoft Office 2003                 MSO.dll
   Microsoft Office Outlook 2003         MSOutl.olb
   Microsoft Office PowerPoint 2003      MSPpt.olb
   Microsoft Office Word 2003            MSWord.olb
				
참고: Dao350.dll, Dao360.dll 및 Microsoft Office 10(MSO.dll)을 제외한 나머지 형식 라이브러리의 기본 위치는 C:\Program Files\Microsoft Office\Office입니다. Office 2002의 경로는 C:\...\Office10이고 Office 2003의 경로는 C:\...\Office11입니다. Dao350.dll/Dao360.dll의 기본 위치는 C:\Program Files\Common Files\Microsoft Shared\Dao입니다. MSO.dll의 기본 위치는 Office 2002의 경우 C:\Program Files\Common Files\Microsoft Shared\Office10이고 Office 2003의 경우 C:\Program Files\Common Files\Microsoft Shared\Office11입니다.

참조

이 문서는 대화 상자 프로젝트를 구축하는 특정한 방법을 제시합니다. Microsoft Developer Studio 환경에서 VC++ 프로젝트를 구축하는 프로세스에 대한 자세한 설명을 보려면 Visual Studio InfoView를 사용하여 액세스할 수 있는 잘 만들어진 자습서를 참조하십시오. 자습서에 액세스하려면 도움말 메뉴에서 검색을 누릅니다. 색인 탭을 누르고 다음을 입력합니다.
working with projects
목록 항목을 누릅니다. 항목 "Home Page: Working With Projects"를 선택하고 표시를 누릅니다. Office 응용 프로그램의 자동화에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
222101 Office 개체 모델 설명서를 찾고 사용하는 방법




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 178749 - 마지막 검토: 2005년 9월 16일 금요일 - 수정: 4.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Foundation Class Library 4.2?을(를) 다음과 함께 사용했을 때
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
키워드:?
kbhowto kbinterop kbautomation KB178749

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com