元旦刚过,老板就吩咐起草一份项目可行性报告,昨天刚完,掰手指头一算,整整没日没夜写了4天!老板又让偶写一个网页控件给客户。是在内部网发布,发布过程还是频费一翻周折,呵,好记性不如烂笔头,记下来:
以下ActiveX发布所需工具下载:http://d.download.csdn.net/down/326629/memory_xj
开发一个示功图显示程序,控件为:SgtActiveX.ocx,没有静态编译,需要一个可以在任何IE机器上运行这个控件.MFC 6.0需要的动态链接库主要有3个: mfc42.dll mfcvcrt.dll olepro32.dll。将所需要的所有文件全部放在同一目录中。
1、获得软件发行证书(测试)
创建用于数字签名的公钥和私钥对,并将其存储在证书文件中.
makecert -sk XUJUN -n "CN=XUJUN COMPANY" c:/SgtXU.cer
创建发行者证书 (SPC)
cert2spc c:/SgtXU.cer c:/SgtXU.spc
2、建立SgtXU.inf文件
内容为:
[version]
signature="$XUJUN$"
AdvancedINF=2.0
[Add.Code]
SgtActiveX.ocx=SgtActiveX.ocx
mfc42.dll=mfc42.dll
msvcrt.dll=msvcrt.dll
olepro32.dll=olepro32.dll
[mfc42.dll]
file-win32-x86=thiscab
FileVersion=6,0,8168,0
DestDir=11
RegisterServer=yes
[msvcrt.dll]
file-win32-x86=thiscab
FileVersion=6,0,8168,0
DestDir=11
RegisterServer=yes
[olepro32.dll]
file-win32-x86=thiscab
FileVersion=5,0,4261,0
DestDir=11
RegisterServer=yes
[SgtActiveX.ocx]
file-win32-x86=thiscab
clsid={D00026C6-D435-4937-B77C-3C3B9B19A26D}
FileVersion=1,0,0,21
RegisterServer=yes
3、将SgtXU.inf保存至同一目录中,创建CAB文件
用命令比较合适(用iexpress命令也可以建立CAB文件,我在实例中出现了问题,所以改用cabarc命令):
cabarc -s 6144 n SgtXU.cab olepro32.dll msvcrt.dll mfc42.dll SgtActiveX.ocx SgtXU.inf
4、签署文件
signcode /spc c:/sgtXU.spc -k XUJUN c:/sgtXU.cab
5、完成将sgtXU.cab发布至WEB目录中,在ASP中用object标签调用该控件即可。 调用方式如下:
<object id=SgtXU style="left: 0px; width: 100%; top: 0px; height: 450px;" classid="clsid:D00026C6-D435-4937-B77C-3C3B9B19A26D" viewastext codebase=http://127.0.0.1:9000/ActiveX/SgtXU.cab#version=1,0,0,21>
注意网页中object标签codebase参数的URL地址和#version所指定的版本号