自己写的 OCX或 ACTIVEX需要注册,如果是VS05或VS08开发的,还需要安装相应 的发行包才行
比如;08就需要安装 vcredist08.exe(08); 这个在微软上找或自己的VS安装包中也可以找到 来说说关键的要点;用CAB 需要把我们的开发的OCX和相关DLL打到CAB,同时还要确保客户机上安装 vcredist.exe否则,即使控件安装上了也使用不了的 CAB工具下载 下载后解压到C:\CAB, 然后进CMD, 切换当前路径为 c:\CAB ,操作见下吧 1, cabarc.exe -s 6144 N X.CAB X.ocx X.inf A.dll 意思是: -s 设置大小,6144表示64K, 这个不管它吧 N 表示要创建一个CAB包; X.CAB 就是生成 的CAB包文件名了 X.OCX即我们的开发的控件文件名了, X.inf 就是CAB的安装内容,这个有麻烦,放后面说它 A.dll就是我们的控件需要用到的DLL文件,如果有其它的还需要也加在,在后面加空格 一 一加上吧; 2、X.inf 内容 ;//下面这三行,照抄就行,主要是版本信息,非特殊不要更改,直接照写就行 [version] signature="$CHICAGO$" AdvancedINF=2.0 ;//这就是要安装的文件了,包括控件和相关文件 [Add.Code] X.OCX = X.OCX A.DLL = A.DLL ;//上面两个是控件所用的 ;//下面这行是另外增加的,主要是安装VC发行包(vcredist_x86.exe就是发行包的安装名,见后) vcredist_x86.exe=vcredist_x86.exe [X.OCX] ;//指定O.ocx 是从CAB包里获取 file-win32-x86=thiscab ;//x.ocx 的CLASSID信息 clsid={1D73A88F-8621-498F-B7CD-F6485620F3AA} ;//x.ocx文件版本; (就是文件属性里面那个文件版本号) FileVersion=1,0,0,1 ;//是否为自动注册,一般都是需要注册的哟 RegisterServer=yes [A.DLL] file-win32-x86=thiscab ;同上了,也可加上版信息 ;// FileVersion = 1,1,1,1 ;//这里注意了,发行包安装的信息 [vcredist_x86.exe] fileVersion=9,0,30729,17 hook=InstallerHook ;//这项并没有设置file-win32-x86的值,因为它并不在CAB里面,这里设置了一HOOK,让HOOK ;//来处理 //发行包的安装来源 [InstallerHook] ;//这里安装默认是在同X.CAB的目录,如果是在网站,可以更改为URL路径 ;//如:http://www.x.com/vcredist.cab file-win32-x86=VCredist.CAB ;//这里就是让CAB自动解压过后,运行CAB包里面的 vcredist_x86.exe run=%EXTRACT_DIR%\vcredist_x86.exe 配置完毕 这里需要两个CAB,一个是我们的控件 X.cab 另一个是发行包的 VCRedist.CAB 里面只有一个文件 vcredist_x86.cab ( cabarc.exe N VCRedist.cab vcredist_x86.exe ) 运行此命令需设置全路径或切换vcredist_x86.exe所在目录再运行命令 好了,在网页里面,设置控件的 codebase="X.CAB" 安装时会自动下载 vcredist.cab并且安装,但这个是有界面操作的,就是安装的时候需要用户点下一步什么的,并不是安静安装模式。。 另参见MSDN:http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx#cabdl微软的CAB包制作方法: