程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 用ATL開發和部署ActiveX控件的簡單例子

用ATL開發和部署ActiveX控件的簡單例子

編輯:關於VC++

寫一個ATL組件,加一個簡單類,在類頭文件中加入:BEGIN_CATEGORY_MAP(CAirlineInfo)
IMPLEMENTED_CATEGORY(CATID_SafeForScripting)
IMPLEMENTED_CATEGORY(CATID_SafeForInitializing)
END_CATEGORY_MAP()

然後把上面代碼需要的頭文件(#include <objsafe.h> )引入到stdafx.h。再在類中隨便加入一個方法調用WinExec()函數就ok了,看zqcom工程。

在網上發布需要將依賴的文件打包為.cab,其中包括組件的dll,dll依賴的庫和一個inf文件。我的示例中inf 文件的內容如下:

[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
zqcom.dll=zqcom.dll
msvcr71d.dll=msvcr71d.dll
[zqcom.dll]
file-win32-x86=thiscab
clsid={CB4C551D-2BF5-40F7-866B-922DBEA618F2}
FileVersion=1,0,0,0
RegisterServer=yes
[msvcr71d.dll]
file-win32-x86=thiscab
RegisterServer=yes

其中[version]的內容固定;[Add.Code]為要添加的內容,zqcom.dll為要添加的組件,msvcr71d.dll為zqcom.dll 的依賴庫,(我用的是.net,因此是msvcr71d.dll,若用vc6.0寫的組件就是mfc42.dll);[zqcom.dll]中是一些信息,clsid對應的是類的CLSID。

注意:由於組件未簽名,客戶端訪問的時候要降低安全設置,在屬性安全中把internet和intranet的設置改為允許運行未簽名的activex組件就ok了,安裝後再該回來。

打包.cab的方法:

在命令行輸入:

CABARC n e:\myinf.cab e:\zqcom.dll e:\msvcr71d.dll e:\test.inf

把生成的.cab放在對應的位置,我的cab放在:c:\Inetpub\wwwroot\下。若cabarc未運行,那就在機器上搜一下,然後加入環境路徑中,一切ok了。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved