為MFC和ATL控制項建立簽署的CAB檔案

2021-03-31 11:09:51 字數 2605 閱讀 5479

[正文]

這個東西在msdn中有詳細的過程(e文),天極網上的這一篇俺覺得是msdn的翻譯(

http://.yesky.***/20011220/210737.shtml),不過我照著上面的步驟做,怎麼都沒有成功,還說數字簽名要錢(這不是要我的命嗎),然後在找啊找,終於讓我找到了簡單一點的辦法。

下面是建立簽署cab檔案的步驟 :

1 獲得乙個軟體出版商證明書 (您只需要這一次申請就可以永久使用)

2 建立 cab 檔案

3 簽署您的檔案

4 將簽署過的 cab檔案嵌入乙個web頁(可選項)獲得乙個軟體出版商證明書

步驟1.數字證書

大家可以在

.ca365.***中申請乙個免費的,可以使用乙個月的樣子吧,具體怎麼操作,大家可以檢視該**的使用說明。

步驟2建立你cab檔案

這裡面最重要的就是製作inf檔案了。

我按照msdn上的製作出來後沒走作用,不知道怎麼搞的。

以我開發的active控制項為例講講對於控制項的inf的製作。我做的控制項用到了4個檔案:display.dll,***m.dll , videocodec.dll 和 vstar.ocx

其中vstar.ocx呼叫其他三個dll來執行的。

注:;後面是注釋

inf檔案內容:

;start

[version]

signature=$chicago$;這部分固定不變

[destinationdirs]

dllsyscopy=11

ocxcopy=11;指明下面要操作兩個copy到的資料夾為系統資料夾(2000中有winnt/system32)

[defaultinstall]

copyfiles=dllsyscopy,ocxcopy;指明有兩部分檔案要copy

addreg=videoreg;在登錄檔中要新增的內容,控制項註冊用

[dllsyscopy]

***m.dll=***m.dll

display.dll=display.dll

videocodec.dll=videocodec.dll

[ocxcopy]

vstar.ocx=vstar.ocx

;下面的內容為控制項在登錄檔中,註冊有內容

;你可以先在本機上用regvr32命令註冊控制項。然後在regedit中得到其hkey_classes_root/clsid有關

;你控制項的註冊項(vstar)。下面拿第乙個為例子大家就清楚了。

;下面第一排表示 hkey_classes_root/clsid/ 分支下

;有乙個名稱為"預設",型別為"reg_sz",資料為"vstar property page"的表項。

[videoreg]

hkcr,clsid/,"",%reg_sz%,"vstar property page"

hkcr,clsid//inprocserver32,"",%reg_sz%,"%11%/vstar.ocx"

hkcr,clsid/,"",%reg_sz%,"vstar control"

hkcr,clsid//control,"",%reg_sz%

hkcr,clsid//implemented categories,"",%reg_sz%

hkcr,clsid//implemented categories/,"",%reg_sz%

hkcr,clsid//implemented categories/,"",%reg_sz%

hkcr,clsid//inprocserver32,"",%reg_sz%,"%11%/vstar.ocx"

hkcr,clsid//inprocserver32,"threadingmodel",%reg_sz%,"apartment"

hkcr,clsid//miscstatus,"",%reg_sz%,"0"

hkcr,clsid//miscstatus/1,"",%reg_sz%,"131473"

hkcr,clsid//progid,"",%reg_sz%,"vstar.vstarctrl.1"

hkcr,clsid//toolboxbitmap32,"",%reg_sz%,"%11%/vstar.ocx, 1"

hkcr,clsid//typelib,"",%reg_sz%,""

hkcr,clsid//version,"",%reg_sz%,"1.0"

;end

做好你的inf檔案後就可以開始打包了,把控制項程式和inf檔案放到乙個目錄下用wincab打上包就行,wincab使用比較簡單。

步驟三.簽署您的檔案

這一步是告訴使用你控制項的人,「這是我發布的控制項你可以相信我,如果出了什麼問題你可以找我」

在這一步中你可以使用"chinatcp 個人控制項數字簽名系統",它上面有很詳細的使用方法,這裡不做介紹。它也可以製作數字簽名,不過它的數字簽名沒有那麼詳細的資訊

步驟四.將簽署過的 cab檔案嵌入乙個web頁(可選項)獲得乙個軟體出版商證明書

後記:當ie中的安全級別設定為低時,控制項如果沒有數字簽名,也是能夠使用的。但每次執行時會跳出執行的指令碼不安全的提示。(如果想在**中遮蔽它,可以參見"

VC 中的ATL和 MFC有什麼區別

atl是activextemplatelibrary的縮寫,它是一套c 模板庫。使用atl能夠快速地開發出高效 簡潔的 同時對com元件的開發提供最大限度的 自動生成以及視覺化支援。為了方便使用,從microsoftvisualc 5.0版本開始,microsoft把atl整合到visualc 開發...

MFC 控制項中control和value的區別

最近學習vc,又被這個問題搞糊塗了,上網查了下,終於搞清楚了。control型變數是這個控制項所屬類的乙個例項 物件 可以通過這個變數來對該控制項進行一些設定。而value只是用來傳遞資料,不能對控制項進行其它的操作。control型變數可以獲得控制項的例項,通過這個變數,你可以操縱控制項 valu...

MFC的Dialog中為PPC建立選單 收藏

mfc的dialog中為ppc建立選單 收藏 1 在資源中新增選單,名稱比如為 idr menu1。2 在對話方塊的初始化函式中加入以下 shmenubarinfo mbi zeromemory mbi,sizeof shmenubarinfo mbi.cbsize sizeof shmenubar...