现在的位置: 首页 > 综合 > 正文

用VB6写在线更新程序(上篇)(2/3)

2013年08月02日 ⁄ 综合 ⁄ 共 1138字 ⁄ 字号 评论关闭

到这里又遇到问题了,命令行参数是拆分到数组里的,如果不指定命令参数时,则数组保持为“空数组”。而对“空数组”的任何操作(包括用UBound函数测长度)都会引发错误,这个问题困扰了我很久。怎么才能将这种情况区分出来呢?没办法,最终还是只能借助API函数:SafeArrayGetDim,其实这个函数的真正作用是:取得 OLE Variant 数组元素的数组维度,不过,勉强解决问题吧。

从命令行参数得到XML配置文件地址后,接着是解析XML文件获取更新信息与文件列表。当然,在解析XML配置信息之前,得先定好XML配置文件的格式,如下面的代码:

 

<?xml version="1.0" encoding="gb2312" ?>

<update>

  <publish>

  <force>0</force>

  <publishDate>20090902 19:51:32</publishDate>

  <version>1.0.0.0</version>

  <remark />

  <run />

  </publish>

<paths>

  <configUrl url="Update.xml" />

  <configPath path="D:/Current/VBUpdate/Publisher/" />

  <baseUrl url="http://localhost/update/" />

  <localPath url="D:/Current/VBUpdate/Publisher/" />

  <remotePath url="D:/Current/VBUpdate/Publisher/" />

  </paths>

   <files>

  <file name="Publisher.exe" main="1" version="1.0.0.0" />

  <file name="../Update/Update.exe" version="1.0.0.0" />

  <file name="../Update/olelib.tlb" version="20040201 22:54:16" />

  <file name="../Update/SetSys.ico" version="20090813 10:38:54" />

   </files>

</update>

 

其中,publish结点描述的上所发布程序的基本信息,包括以下子结点:

 

序号

结点名称

用途

可能值

备注

1

force

指明是否强制更新。

0(可取消更新)或1(强制更新)

0值均解析为1(强制更新)

2

publishDate

表示发布时间。

发布当时时间。

 

3

version

主程序版本号。

主程序文件版本号。

通过比较这个版本号决定是否需要更新。

4

remark

发布说明。

历次发布的修订内容。

每次的修订内容占一行,新的在上面。

5

抱歉!评论已关闭.