Developing COM Components using VC-ATL(3-6) (轉)
:namespace prefix = o ns = "urn:schemas--com::office" />
n Visual C++
n 編寫步驟:
1. 新建一個標準工程,工程名設定為VBTestVCComProj;引入元件,選擇選單Project->References…,點選瀏覽,選擇C:ValidateCreditCardServerDe ValidateCreditCardServer.dll;敲入如下窗體程式碼(別忘了在窗體上放兩個文字框和一個按鈕哦)。
Private Sub Command1_Click()
Dim comobj As New VALIDATECREDITCARDSERVERLib.ValidateCard
If comobj.ValidateCreditCard(Text1.Text, Text2.Text) = 1 Then
MsgBox "valid card"
Else
MsgBox "invalid card"
End If
End Sub
2. 編繹執行測試。
n 程式碼測試:同上(略)。
n Visual C++呼叫Visual C++元件
在這裡我不再詳細介紹步驟了,相信透過前面兩個例子介紹,你應該掌握了其具體的操作要點。在這裡我只扼要地提一下綱領。
1. 使用Visual C++建立一個基於對話方塊的應用程式,工程名為VCTestVCComProj,同上面幾個測試工程一樣,在對話方塊上面放置兩個文字框和一個確定按鈕。
2. 在客戶端中匯入的型別庫
2-1在 StdAfx.h 中加入程式碼
#import "..ValidateCreditCardServerValidateCreditCardServer.tlb"
或
#import "..ValidateCreditCardServerDebugValidateCreditCardServer.dll"
這兩種方法都可以!
2-2編譯 StdAfx.cpp,產生包裝類,即在客戶工程空間中輸出目錄(C:VCTestVCComProjDebug)中建立的兩個檔案:型別庫標頭檔案(ValidateCreditCardServer.tlh)和型別庫實現檔案(ValidateCreditCardServer.tli)。
2-3對話方塊訪問伺服器元件的功能需要使用伺服器包裝類名字空間。為此,在VCTestVCComProjDlg.cpp檔案頭部中增加如下的語句:
using namespace VALIDATECREDITCARDSERVERLib;
3. 初始化COM庫
4. 獲得伺服器的CLSID
5. 建立COM伺服器元件的例項
6. 使用COM
7. 終止COM庫
VCTestVCComProjDlg.cpp清單
// VCTestVCComProjDlg.cpp : implementation file
//
#include "stdafx.h"
#include "VCTestVCComProj.h"
#include "VCTestVCComProjDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
using namespace VALIDATECREDITCARDSERVERLib;
…
BEGIN_MESSAGE_MAP(CVCTestVCComProjDlg, CDialog)
//{{AFX_MSG_MAP(CVCTestVCComProjDlg)
ON_WM_SYMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
…
void CVCTestVCComProjDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HRESULT hr=CoInitialize(NULL);// 初始化COM庫
CLSID clsid;
hr=CLSIDFromProgID(OLESTR("ValidateCreditCardServer.ValidateCard"),&clsid);// 獲得伺服器的CLSID
IValidateCard * cardptr;
hr=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(IValidateCard),(LPVOID *)&cardptr);
if(FAILED(hr))
{
AfxMessageBox("Server Creation Failed");
return;
}//建立COM伺服器元件的例項
char cCardNum[20],cCardType[10];
GetDlgItemText(IDC_EDIT1,cCardNum,20);
GetDlgItemText(IDC_EDIT2,cCardType,10);
_bstr_t bstCardNum(cCardNum),bstCardType(cCardType);
long lStatus;
lStatus=cardptr->ValidateCreditCard(bstCardNum,bstCardType);
if(lStatus==1)
AfxMessageBox("valid card");
else
AfxMessageBox("invalid card"); //使用COM物件
CoUninitialize();//終止COM庫
}
8. 編繹執行測試程式。
n 程式碼測試:同上(略)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963669/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Developing COM Components using VC-ATL(1) (轉)dev
- Developing COM Components using VC-ATL(2-3) (轉)dev
- Developing COM Components using VC-ATL(2-2) (轉)dev
- Developing COM Components using VC-ATL(3-3) (轉)dev
- Developing COM Components using VC-ATL(3-5) (轉)dev
- Developing COM Components using VC-ATL(3-4) (轉)dev
- Developing COM Components using VC-ATL(3-7) (轉)dev
- Developing for ARKit 1.5 update using Unity ARKit PlugindevUnityPlugin
- [轉帖]10 Hardware Components of Oracle ExadataOracle
- Angular 2 Components CommunicateAngular
- 探索Web ComponentsWeb
- [譯] Architecture Components 之 Adding Components to your ProjectProject
- 從HTML Components的衰落看Web Components的危機HTMLWeb
- Web Components 小欖Web
- 「 重磅 」React Server ComponentsReactServer
- Styled-Components初探
- Web Components 原生元件 TrendsWeb元件
- 【譯】Web Components簡介Web
- Web Components系列(一) —— 概述Web
- Building Custom ComponentsUI
- astro中建立web componentsASTWeb
- SAP Commerce Cloud Build Manifest ComponentsCloudUI
- Flutter Flame 教程3 -- Components元件Flutter元件
- 初識 Web Components 與 StencilWeb
- 【譯】容器元件 (Container Components)元件AI
- Atag – Web Components 最佳實踐Web
- visual components premium特色功能REM
- Web Components之Custom ElementsWeb
- Altium designer 從原理圖更新至PCB時出現提示:failed to match * of * components using unique identifiersAIIDE
- XML 程式設計思想: UBL 1.0(以及 ebXML Core Components 等)(轉)XML程式設計
- Web Components 入門例項教程Web
- [譯] styled-components v3.1.0
- [譯] Web Components 的高階工具Web
- Visual Components軟體特點
- 淺析Web components的痛點Web
- Web Components 系列(五)—— 關於 TemplatesWeb
- Web Components 系列(五)—— 詳解 SlotsWeb
- CSS in JS 之 Styled-components 用法CSSJS