ActiveX 控件打包

网上有很多进行控件打包和签名的步骤,不过很遗憾的是他们发布的控件大多以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,到此控件的打包工作完成。

你可能感兴趣的:(File,mfc,dll,工具,Deployment,wizard)