Làm th? nào đ? t?o ra m?t d? án t? đ?ng hóa b?ng cách s? d?ng MFC và m?t thư vi?n ki?u

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 178749 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này minh ho?, chi ti?t, làm th? nào đ? t? đ?ng hoá thành ph?n tích h?p v?i các ?ng d?ng COM tuân th? như Microsoft Các ?ng d?ng văn ph?ng.

THÔNG TIN THÊM

Các ph?n sau đây minh ho? làm th? nào b?n có th? t?o m?t MFC d? án. Ví d? t? đ?ng hóa Microsoft Excel. B?n có th? s? d?ng các bư?c đ?u tiên 8 Đ?i v?i b?t k? d? án, và s?a đ?i bư?c 9 thông qua 15 khi b?n làm vi?c v?i nhau ?ng d?ng.

T?o m?t d? án t? đ?ng hóa

  1. V?i Microsoft Developer Studio, b?t đ?u m?t m?i "MFC AppWizard (exe) "d? án đ?t tên là"autoproject."
  2. Trong bư?c 1 c?a MFC AppWizard, ch?n "H?p tho?i d?a trên" cho lo?i ?ng d?ng và sau đó b?m hoàn t?t.

    D? án m?i H?p tho?i thông tin xu?t hi?n và ch? ra r?ng các l?p h?c đư?c t?o ra bao g?m:
          Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
          Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
    						
    B?m có đ? t?o ra các d? án.
  3. H?p tho?i "idd_autoproject_dialog" s? m? ra trong th? giác Studio thi?t k?/s?a khu v?c. S?a đ?i nó theo hư?ng d?n trong k? ti?p hai bư?c.
  4. Lo?i b? các nh?n control (IDC_STATIC) và nút h?y b? (IDCANCEL).
  5. Thay đ?i tên c?a nút OK đ? "idrun" và các chú thích đ? "Ch?y." Đóng h?p tho?i AutoProject.rc h?p thi?t k? m?u.
  6. Nh?p ClassWizard vào tr?nh đơn xem (ho?c nh?n CTRL + W).
  7. Ch?n b?n đ? thông đi?p tab. ch?n IDRUN trong các đ?i tư?ng ID danh sách các h?p và ch?n "bn_clicked" trong danh sách h?p thư. Nh?p vào thêm ch?c năng và ch?p nh?n tên ch?c năng "onrun". Nh?p vào OK đ? đóng ClassWizard.

    Lưu ?: Bư?c này thêm m?t tuyên b? cho các thành viên ch?c năng "OnRun();" tiêu đ? t?p tin đ?t tên AutoProjectDLG.h. Bư?c này c?ng cho bi?t thêm m?t r?ng b? xương thư ch?c năng x? l? tên là CAutoProjectDlg::OnRun() đ? các t?p có tên AutoProjectDLG.cpp.
  8. Nh?p ClassWizard vào tr?nh đơn xem (ho?c nh?n CTRL + W).
  9. Ch?n t? đ?ng hóa tab. Nh?p vào thêm l?p và l?a ch?n " thư m?t lo?i vi?n." Đi?u hư?ng đ?n ch?n thư vi?n đ?i tư?ng cho các ?ng d?ng b?n mu?n đ? t? đ?ng hóa (ví d? này, n?u b?n đang t? đ?ng hoá Excel 97, ch?n các Microsoft Excel 8,0 đ?i tư?ng thư vi?n; v? trí m?c đ?nh là c: Program Files Files\Microsoft Office\Office\Excel8.olb).

    N?u b?n đang t? đ?ng hoá Microsoft Excel 2000, ch?n Microsoft Excel 9,0 đ?i tư?ng thư vi?n mà các v? trí m?c đ?nh là c: Program Files Files\Microsoft Office\Office\Excel9.olb.

    N?u b?n đang t? đ?ng hoá Microsoft Excel 2002 và Microsoft Office Excel 2003, các thư vi?n đ?i tư?ng đư?c nhúng vào trong t?p tin Excel.exe. V? trí m?c đ?nh cho Excel.exe trong văn ph?ng 2002 là C:\program Files\Microsoft Office\Office10\Excel.exe. V? trí m?c đ?nh cho Excel.exe trong Office 2003 là C:\Program Files\Microsoft Office\Office11\Excel.exe. M?t khi b?n đ? ch?n thư vi?n đ?i tư?ng thích h?p, nh?p m?. Ch?n t?t c? các l?p trong s? xác nh?n Các l?p h?c danh sách, và sau đó b?m OK.

    Lưu ?: H?p danh sách trong s? xác nh?n Các l?p h?c h?p ch?a t?t c? các giao di?n IDispatch (trong đó có h?u như gi?ng h?t nhau đ?n các l?p h?c) trong thư vi?n ki?u Microsoft Excel. Trong các n?a dư?i c?a h?p tho?i, b?n s? th?y r?ng m?t t?p tin th?c hi?n đ?t tên Excel8.CPP ch?a hàm bao t?o ra l?p có ngu?n g?c t? ColeDispatchDriver(), và thích h?p tuyên b? tiêu đ? t?p đư?c đ?t tên Excel8.h. (Cho Excel 2002 và Excel 2003, các t?p tin có tên là Excel.cpp và Excel.h.)
  10. Nh?p vào OK đ? đóng h?p tho?i MFC ClassWizard.
  11. Thêm m? sau đây đ? các CAutoProjectApp::InitInstance() ch?c năng, mà t?i và cho phép COM d?ch v? thư vi?n:
          BOOL CAutoProjectApp::InitInstance()
          {
             if(!AfxOleInit())  // Your addition starts here
             {
                AfxMessageBox("Could not initialize COM dll");
                return FALSE;
             }                 // End of your addition
    
             AfxEnableControlContainer();
          .
          .
          .
    
          }
    					
  12. Thêm sau đây bao g?m d?ng đ? # phát bi?u t?i các đ?u c?a t?p tin chương tr?nh AutoProject.cpp:
          #include <afxdisp.h>
    					
  13. Thêm các báo cáo bao g?m cho excel8.h sau khi vi?c bao g?m tuyên b? cho stdafx.h ? đ?u t?p tin chương tr?nh AutoProjectDlg.cpp:
          #include "stdafx.h"
          #include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
    					
  14. Thêm t? đ?ng hóa m? đ? CAutoProjectDlg::OnRun() đ? nó xu?t hi?n như đư?c hi?n th? dư?i đây:
          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. Xây d?ng và ch?y các d? án. K?t qu?: Khi b?n b?m ch?y nút trong h?p tho?i, Microsoft Excel s? đư?c đưa ra. Kích ho?t các Auto_Excel tho?i h?p và b? qua h?p thư. Microsoft Excel s? b? thu?c lá khi các ch?c năng CAutoProjectDlg::OnRun() k?t thúc v? ?ng d?ng bi?n s? đ? đi ra kh?i ph?m vi.

Thêm ghi chú

M?t khi b?n đ? thêm vào các l?p h?c t? m?t thư vi?n ki?u đ?n c?a b?n d? án (như b?n đ? làm trong bư?c 9 ? trên), b?n s? nh?n th?y r?ng nhi?u các l?p h?c có đư?c thêm vào d? án. Trong ClassView, b?n có th? nh?p đúp vào m?t l?p h?c đ? xem ch?c năng thành viên đó l?p và sau đó nh?p đúp vào tài kho?n c?a ch?c năng đ? xem đ?nh ngh?a c?a ch?c năng đó trong t?p tin th?c hi?n Excel8.cpp.

B?n c?n ph?i đi đ?n đ?nh ngh?a c?a m?t ch?c năng thành viên n?u b?n mu?n xác minh m?t lo?i tr? l?i, ho?c n?u b?n c?n thay đ?i th?c hi?n m?t ch?c năng. B?t k? khi b?n thay đ?i m?t đ?nh ngh?a ch?c năng, nh? thay đ?i tuyên b? trong các t?p tin Excel8.h. Khi làm như v?y, h?y ch?c ch?n r?ng b?n thay đ?i các ch?c năng chính xác tuyên b?; đôi khi, cùng tên đư?c đưa ra đ? ch?c năng thành viên c?a nhi?u classes--GetApplication() là m?t ví d?.

M?c dù các bư?c minh h?a ? trên làm th? nào đ? t? đ?ng hoá Microsoft Excel, b?n có th? áp d?ng nh?ng ? tư?ng tương t? đ? t? đ?ng hoá các ?ng d?ng khác. Danh sách dư?i đây ch?a tên t?p tin cho các thư vi?n ki?u c?a các ?ng d?ng Microsoft Office:
   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
				
Lưu ?: V? trí m?c đ?nh cho các thư vi?n ki?u là c: Program Files Files\Microsoft Office\Office (cho văn ph?ng 2002 đư?ng là C:\...\Office10 và cho Office 2003 đư?ng là C:\...\Office11), ngo?i tr? Dao350.dll ho?c Dao360.dll, và văn ph?ng Microsoft 10(MSO.dll). V? trí m?c đ?nh cho Dao350.dll/Dao360.dll là C:\Program Files\Common Files\Microsoft Shared\Dao. V? trí m?c đ?nh cho MSO.dll là C:\Program Files\Common Files\Microsoft Shared\Office10 cho văn ph?ng 2002 và C:\Program Files\Common Files\Microsoft Shared\Office11 cho Office 2003.

THAM KH?O

Bài vi?t này tr?nh bày m?t cách ti?p c?n c? th? đ? xây d?ng m?t h?p tho?i d? án. N?u b?n mu?n xem tài li?u hư?ng d?n t?ng quát hơn quá tr?nh xây d?ng m?t VC ++ d? án trong Microsoft Developer Studio môi trư?ng, đó là m?t hư?ng d?n tuy?t v?i b?n có th? truy c?p b?ng cách s? d?ng tr?c quan Studio InfoView. Đ? truy c?p vào các hư?ng d?n, b?m vào t?m ki?m trên menu tr? giúp. Nh?p vào ch? m?c tab và lo?i sau đây:
làm vi?c v?i các d? án
B?m vào danh sách các ch? đ?. Ch?n ch? đ? "Trang ch?: làm vi?c v?i D? án"và b?m vào hi?n th?. Đ? bi?t thêm chi ti?t v? t? đ?ng hóa các ?ng d?ng văn ph?ng, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
222101Làm th? nào đ? t?m và s? d?ng văn ph?ng đ?i tư?ng m?u tài li?u

Thu?c tính

ID c?a bài: 178749 - L?n xem xét sau cùng: 19 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Foundation Class Library 4.2
  • Microsoft Office XP Developer Edition
  • Microsoft Office 2000 Developer Edition
T? khóa: 
kbautomation kbhowto kbinterop kbmt KB178749 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:178749

Cung cấp Phản hồi

 

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