MFC ve bir tür kitaplığı'nı kullanarak bir Otomasyon Proje oluşturma

Makale çevirileri Makale çevirileri
Makale numarası: 178749 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, ayrıntılı olarak, Microsoft Office uygulamaları gibi COM uyumlu uygulamalar bileşen tümleştirmeyle otomatikleştirmek verilmektedir.

Daha fazla bilgi

Aşağıdaki bölümde bir MFC nasıl oluşturabileceğinizi göstermektedir proje. Örneğin, Microsoft Excel'in otomatikleştirir. Herhangi bir proje için ilk 8 adımları kullanın ve başka bir uygulama ile çalışırken, 15'den 9. adımlar değiştirebilirsiniz.

Bir Otomasyon projesi oluşturma

  1. Microsoft Developer Studio ile yeni bir başlatma "MFC AppWizard (exe)" "AutoProject." adlı bir proje
  2. Adım 1 MFC AppWizard, uygulama türü için "İletişim kutusu based"'i seçin ve sonra Finish'i (son) tıklatın.

    Yeni proje bilgileri</a1> iletişim kutusu görüntülenir ve oluşturulacak sınıfları dahil olduğunu gösterir:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    projeyi oluşturmak için Tamam'ı tıklatın.
  3. "IDD_AUTOPROJECT_DIALOG" iletişim kutusu Visual Studio'nun tasarım/düzenleme alanında açar. Sonraki iki adımı yönergeleri için göre değiştirin.
  4. Etiket denetimi (IDC_STATIC) ve iptal düğmesi (IDCANCEL).
  5. "IDRUN" ve "Çalıştır" için resim yazısı Tamam düğmesinin adını değiştirme Iletişim kutusu AutoProject.rc tasarım formunu kapatın.
  6. Görünüm menüsünde ClassWizard tıklatın (veya CTRL + W tuşlarına basın).
  7. Ileti haritaları seçin sekmesini Seç IDRUN nesne kimlikleri, kutusunda listelemek ve "BN_CLICKED" iletileri</a1> liste kutusunda seçin. Işlev Ekle'yi tıklatın ve "OnRun" işlev adı benimseyin. ClassWizard kapatmak için Tamam'ı tıklatın.

    Not: Bu adım bir bildirim işlevi üye için "OnRun()" ekler başlığına AutoProjectDLG.h dosya adı. Bu adım, boş bir çatı de ekler CAutoProjectDlg::OnRun() AutoProjectDLG.cpp adlı dosyaya adlı işleyici işlevi iletisi.
  8. Görünüm menüsünde ClassWizard tıklatın (veya CTRL + W tuşlarına basın).
  9. Otomasyon sekmesini tıklatarak add class seçip "bir tür kitaplığı." Otomatikleştirmek istediğiniz uygulama nesne kitaplığına gidin (için Excel 97'de, otomatikleştirme bu örneğin, Microsoft Excel 8.0 Nesne kitaplığı seçin; varsayılan konum C:\Program Files\Microsoft Office\Office\Excel8.olb dosyasıdır).

    Microsoft Excel 2000 otomatikleştirme varsayılan konum C:\Program Files\Microsoft Office\Office\Excel9.olb olduğu Microsoft Excel'in 9.0 Nesne kitaplığı seçin.

    Microsoft Excel 2002 ve Microsoft Office Excel 2003 otomatikleştirme, nesne kitaplığı Excel.exe dosyasına katıştırılır. Office 2002 Excel.exe için varsayılan konum C:\Program Files\Microsoft Office\Office10\Excel.exe ' dir. Office 2003'te Excel.exe için varsayılan konum C:\Program Files\Microsoft Office\Office11\Excel.exe ' dir. Uygun Nesne Kitaplığı'nı seçtikten sonra Aç'ı tıklatın. Tüm sınıfları Onayla seçin listesini tıklatın ve sonra da Tamam sınıfları.

    Not: Sınıf Onayla iletişim kutusu liste kutusunda (olan sınıflar için hemen hemen aynı) Microsoft Excel Tür kitaplığında ıdispatch arabirimler içerir. Iletişim kutusunun alt yarısında, ColeDispatchDriver() ' türetilmiş sınıf sar?c?lar? Excel8.cpp adlı bir uygulama dosyası içerdiğini görürsünüz kutusunda oluşturulan ve Excel8.h uygun bildirimi üstbilgi dosyası olarak adlandırılır. (Excel 2002 ve Excel 2003'te dosyaları Excel.cpp ve Excel.h adlandırılır.)
  10. MFC ClassWizard iletişim kutusunu kapatmak için Tamam'ı tıklatın.
  11. Aşağıdaki kodu yükler ve COM sağlayan CAutoProjectApp::InitInstance() işlevin kitaplık Hizmetleri ekleyin:
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. Aşağıdaki ekleme satırına # AutoProject.cpp program dosyasının üst ifadeleri içerir:
          #include <afxdisp.h>
    					
  13. AutoProjectDlg.cpp program dosyasının en üstünde stdafx.h içerme deyimin sonra excel8.h ekleme deyimi ekleyin:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. Aşağıda gösterildiği gibi göründüğü için CAutoProjectDlg::OnRun() Otomasyon kodu ekleyin:
          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. Oluşturup projeyi çalıştırın. Sonuç: Ne zaman Çalıştır öğesini düğmesini iletişim kutusunda, Microsoft Excel'in başlattı. Auto_Excel iletişim kutusunu etkinleştirmek ve ileti kutusunu kapatmak. Microsoft Excel, de?i?ken uygulama kapsamı dışında gitti olduğundan CAutoProjectDlg::OnRun() işlevi sonlandığında çıkılacak.

Ek notlar

Bir kez (, 9, yukarıdaki adımda gibi), sınıflar bir tür kitaplığından projenize eklediğiniz, pek çok sınıf projeye eklenmiş olduğunu göreceksiniz. ClassView içinde bir sınıf, bu sınıfın bir üyesi fonksiyonları görmek ve sonra Excel8.cpp uygulama dosyasında bu işlevin tanımını görüntülemek için üye işlevi çift tıklatın.

Dönüş türü doğrulamak istiyorsanız veya bir işlevin uygulama değiştirmek istediğinizde bir <a0>üye</a0> işlevinin tanımına gitmek gerekir. Bir işlevin tanımını değiştirmek istediğiniz zaman Excel8.h dosya bildiriminde değiştirme unutmayın. Böylece, doğru işlev bildirimi değiştirin; bazı durumlarda, aynı ad için verilen dikkat edin, üye işlevlerini birden çok classes--GetApplication() bir örnek olur.

Microsoft Excel'in otomatik hale getirmek için yukarıdaki adımları gösterilmektedir, ancak diğer uygulamaları otomatikleştirmek için aynı fikirleri uygulayabilirsiniz. Aşağıdaki liste, tür kitaplıklarının, Microsoft Office uygulamaları için dosya adları içeriyor:
   Application                           Type Library
   --------------------------------------------------

   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                MSOutl.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
				
Not: Bu tür kitaplıkları için varsayılan konum C:\Program Files\Microsoft Office\Office (Office 2002 yolu C:\...\Office10 ve Office 2003 için yol C:\...\Office11) aranır Dao350.dll veya Dao360.dll, haricinde ve Microsoft Office 10(MSO.dll). C:\Program Files\Common Files\Microsoft Shared\Dao Dao350.dll/Dao360.dll için varsayılan konumdur. Mso.dll dosyasının varsayılan konumu C:\Program Files\Common Files\Microsoft Shared\Office10 Office 2002 ve Office 2003 için C:\Program Files\Common Files\Microsoft Shared\Office11 ' dir.

Referanslar

Bu makalede, bir iletişim kutusu projesini belirli bir yaklaşım sunar. Microsoft Developer Studio VC ++ projesi oluşturma işlemi hakkında daha fazla genel belgelerine bakın istediğiniz, ortam, Visual Studio InfoView kullanarak erişebileceğiniz mükemmel bir öğretici yoktur. Öğretici erişmek için <a0></a0>, Yardım menüsünde Ara'yı tıklatın. Dizin sekmesini tıklatın ve aşağıdakileri yazın:
Projelerle çalışma
Konuları Listele</a1> seçeneğini tıklatın. "Giriş sayfası: çalışma ile projeler" konusunu seçin ve Göster'i tıklatın. Office uygulamalarının otomatikleştirme hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
222101Nasıl bulmak ve Office nesne modeli belgeler

Özellikler

Makale numarası: 178749 - Last Review: 23 Haziran 2005 Perşembe - Gözden geçirme: 4.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • 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
Anahtar Kelimeler: 
kbmt kbautomation kbhowto kbinterop KB178749 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:178749

Geri Bildirim Ver

 

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