vc设置程序版本, 获取程序版本号

内容摘自网络,在这里写一遍仅留作备份。

 

VC 发布程序时设置版本信息  

 

  在windwos资源管理器中,可以查看exe或dll文件的版本信息,那么在使用vc生成exe或dll时如何设置版本信息呢,其实非常简单,只要修改资源中的VS_VERSION_INFO中的相关字段即可。这样,在对程序进行了修改后,可以生成新的版本,就不用依靠文件的日期来判断是哪个版本的了。

vc++实现获取软件自身的版本号

vc 获取程序版本号,当前程序路径,文件修改时间 等

 

//获取版本号
CString GetFileVersion(char*  FileName)
{   
    int iVerInfoSize;
    char *pBuf;
    CString asVer="";
    VS_FIXEDFILEINFO *pVsInfo;
    unsigned int iFileInfoSize = sizeof( VS_FIXEDFILEINFO );
    iVerInfoSize = GetFileVersionInfoSize(FileName,NULL); 
    if(iVerInfoSize!= 0)
    {
        pBuf = new char[iVerInfoSize];
        if(GetFileVersionInfo(FileName,0,iVerInfoSize,pBuf))   
        {
            if(VerQueryValue(pBuf,"//",(void **)&pVsInfo,&iFileInfoSize))   
            {
                asVer.Format("%d.%d.%d.%d",HIWORD(pVsInfo->dwFileVersionMS),\
                            LOWORD(pVsInfo->dwFileVersionMS),HIWORD(pVsInfo->dwFileVersionLS),\
                            LOWORD(pVsInfo->dwFileVersionLS));
            }
        }
        delete pBuf;
    }
    return asVer;   
}

 

 

 

//获取文件路径
CString GetCurrentAppDirectory()
{
    char szFile[MAX_PATH];
    char szPath[MAX_PATH];
    GetModuleFileName(NULL,szFile,MAX_PATH);
    size_t i;
    for(i=strlen(szFile)-1; i>0 && szFile[i]!='//'; i--);
    szFile[i]='/0';
    strcpy(szPath,szFile); 
    return (szPath);
}

 

 

//获取当前时间
CString GetModifyTime(CString appname)
{
    WIN32_FIND_DATA ffd ;
    HANDLE hFind = FindFirstFile(appname,&ffd);
    SYSTEMTIME stUTC, stLocal;
    CString strTmp;
    
    FileTimeToSystemTime(&(ffd.ftLastWriteTime), &stUTC);
    SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
    
    strTmp.Format("%d-%d-%d,%d:%d", stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute);
    return strTmp;    //年-月-日,时:分
}

 

posted @ 2023-02-09 09:14  JaydonChia  阅读(305)  评论(0编辑  收藏  举报