ActiveX 控件打包

本文介绍了如何在不使用VC6的package & deployment wizard的情况下,使用VS2005开发的MFC控件进行打包。通过编写.inf文件,并使用cabarc.exe工具,解决控件对DLL的依赖问题,确保用户能够顺利运行打包后的控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有很多进行控件打包和签名的步骤,不过很遗憾的是他们发布的控件大多以VB进行的开发,可以直接使用VC6package & deployment wizard对控件进行打包。我这里的开发的控件使用的是MFC,开发环境是VS2005很遗憾的是无法使用该工具对控件进行打包。所以必须编写.inf文件然后使用微软提供的cabrac.exe对控件进行打包。

    .inf文件语法,你在Google中输入General Syntax Rules for INF Files就可以得到MSDN中详细的解释。

    1.控件对DLL依赖性检查

    编写.inf文件的关键是看你编写的控件对DLL文件的依赖如何,要把你所以依赖的DLL一并打包到.cab包中让用户下载才可运行。如果你编写的控件所依赖的DLL在客户机上已经存在,则不用打包进入.cab包中。一般来说不采用特别的库,或自己编写DLL则,所依赖的DLL客户机上都是存在的。

    VS2005检查依赖行的工具在

C:/Program Files/Microsoft Visual Studio8/Common7/Tools/Bin/

下的Depends.Exe

    双击,然后打开你的.ocx文件。该文件要release编译后,不然其依赖库一般客户机上都没有。如图:

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


你可以记录.ocx文件对dll文件依赖,然后去检查一台没有安装开发环境的客户机上都已经含有所依赖的dll

    本次开发的控件经检查对DLL的依赖除常见的DLL之外还有三个mfc80u.dllmsvcp80.dll,msvcr80.dll文件是控件依赖的。

2.inf文件的编写

下面是本控件.inf文件。

; Sample INF file for UpFileActiveX.DLL

[version]

; version signature (same for both NT and Win95) do not remove

signature="$CHICAGO$"

AdvancedINF=2.0 

 

[Add.Code]

UpFileActiveX.ocx=UpFileActiveX.ocx

mfc80u.dll=mfc80u.dll

msvcr80.dll=msvcr80.dll

msvcp80.dll=msvcp80.dll

 

[msvcp80.dll]

file-win32-x86=thiscab

FileVersion=8,00,50727,762

DestDir=11

RegisterServer=yes

 

[msvcr80.dll]

file-win32-x86=thiscab

FileVersion=8,00,50727,762

DestDir=11

RegisterServer=yes

 

[mfc80u.dll]

file-win32-x86=thiscab

FileVersion=8,00,50727,42

DestDir=11

RegisterServer=yes

 

[UpFileActiveX.ocx]

file-win32-x86=thiscab

clsid={4E586C5A-FD41-4E4C-B66D-63F110C8C4B9}

FileVersion=1,0,0,1

RegisterServer=yes

; end of INF file

    编写完.inf文件后,将所依赖的三个DLL文件,以及.ocx文件和.inf文件放置在一起对文件进行打包。

Cabarc.exe –s 6144 n Storapp.cab mfc80u.dll msvcr80.dll msvcp80.dll upfileActiveX.ocx upfile.inf

    打包完成后会提示Success,到此控件的打包工作完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值