龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

为MFC和ATL控件创建签署的CAB文件(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
创建 INF文件后,再运行CABARC公用程序(在Visual C++ 5.0光盘上的CABSIGN目录中)创建CAB文件。您必须在您的源文件目录下面运行CABARC。存档在CAB 文件中的文件需

  创建 INF文件后,再运行CABARC公用程序(在Visual C++ 5.0光盘上的CAB&SIGN目录中)创建CAB文件。您必须在您的源文件目录下面运行CABARC。存档在CAB 文件中的文件需要在命令行列出,次序同它们在INF文件中完全一致。比如,从上面的INF文件为多边形控件做一个CAB文件,需要使用下面的命令 :

  C:CAB&SIGNCABARC -s 6144 POLYGON.CAB ATL.DLL POLYGON.DLL POLYGON.INF

  该CAB文件包含ATL.DLL和POLYGON.DLL的压缩版本,以及将它们展开到POLYGON.INF 文件所需要的信息。

  有关创建一个下载MFC控件的CAB文件的示例,请参考MFC 4.2b Component Download Information.您需要包含在MFC控件中的DLL文件有MSVCRT.DLL,MFC42.DLL以及 OLEPRO32.DLL。

  签署一个CAB文件

  使用Code Signing Wizard签署一个CAB文件:

  1. 运行公用程序 SIGNCODE (在Visual C++ 5.0光盘的CAB&SIGN 目录下),启动Code Signing Wizard。

    C:CAB&SIGNSIGNCODE

  2. 在Code Signing Wizard对话框当中,点击Next前进到下一页。

  3. 在您想签署那一个程序? 编辑框中,键入您想签署的CAB文件。

  4.在您想在证书中使用什么名字? 编辑框中,键入您想在证书中使用的名字。


  5. 点击Next,前进到下一页。

  6. 在 您想将该程序签署在哪一个软件开发商证书下面? 编辑框中,键入软件开发商证书(SPC)文件名。

  7. 在您要在该证书的哪一个文件中查找密码、密匙? 编辑框中,键入私人密匙(PVK)文件名。

  8. 连续两次点击 Next前进到最后一页。

  9.点击Sign,签署CAB 文件。您的文件将被数字化签署。

  您可以不使用CAB文件直接签署您的DLL和OCX 。CAB文件的好处在于它是压缩的,而且,如果和INF文件一起使用,可以将所有必要代码捆绑在一起。

  将签署过的 CAB文件嵌入一个Web页

  ATL和MFC控件使用标签嵌入网页。在标签,您需要为该控件指定三个属性 :

   ID - 控件名称

   CLASSID - 控件的CLSID

   CODEBASE - 下载控件的位置。CODEBASE 可以指向许多不同的文件类型。

   CODEBASE可以直接指向一个OCX 文件或者DLL文件:

CODEBASE="http://www.mysite.com/mydir/polygon.dll#version=1,0,0,1"

  因为这仅仅完成了DLL或OCX文件的下载和安装,任何必要的DLL支持必须已经装载到了客户机上。

  如果您在CAB文件中包含了选项版本号,它应该指向要下载的控件。例如,如果POLYGON.DLL有一个版本号1,0,0,1,则CAB文件的版本号也必须是1,0,0,1:

CODEBASE="http://www.mysite.com/mydir/polygon.cab#version=1,0,0,1"

  如果您没有包含选项版本号,则不能替换同一个组件(如果它们出现在客户机上的话)的老版本号。

精彩图集

赞助商链接