比较软件的版本号函数

比较软件的版本号函数,版本号的形式为3..0.2.1 支持无限位。

 

/*++

Routine Description:

 1.比较版本号, 递归实现

History:

 13-November-2007 13:42 - 刘峻聪 - Create

--*/
BOOL CUpdateFun::IsNewVersion(CString strOldVersion, CString strNewVersion)
{
    if (strOldVersion == _T("") && strNewVersion == _T(""))
    {
        return FALSE; // 相等,不是新版本
    }

    int oldVer = 0; // 取旧版本的第一个版本位
    int newVer = 0; // 取新版本的第一个版本位
    int posOldVer = 0;    // 位标,用于旧版本
    int posNewVer = 0;    // 位标,用于新版本

    posOldVer = strOldVersion.Find(_T("."), 0);
    oldVer = posOldVer<0 ? atoi(strOldVersion) : atoi(strOldVersion.Left(posOldVer));   

    posNewVer = strNewVersion.Find(_T("."), 0);
    newVer = posNewVer<0 ? atoi(strNewVersion) : atoi(strNewVersion.Left(posNewVer));   

    if (oldVer < newVer)
    {
        return TRUE;
    }
    else if (oldVer == newVer)
    {
        CString strOldVersion1 = _T(""); // 旧版本
        CString strNewVersion1 = _T(""); // 新版本

        if (posOldVer > -1)
        {
            strOldVersion1 = strOldVersion.Right(strOldVersion.GetLength()-posOldVer-1);
        }

        if (posNewVer > -1)
        {
            strNewVersion1 = strNewVersion.Right(strNewVersion.GetLength()-posNewVer-1);
        }

        return IsNewVersion(strOldVersion1, strNewVersion1);
    }

    return FALSE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值