VC 发布程序时设置版本信息
在windwos资源管理器中,可以查看exe或dll文件的版本信息,那么在使用vc生成exe或dll时如何设置版本信息呢,其实非常简单,只要修改资源中的VS_VERSION_INFO中的相关字段即可。这样,在对程序进行了修改后,可以生成新的版本,就不用依靠文件的日期来判断是哪个版本的了。
//-------------------------------------------------------------------------------------------------------------------
最近正在学vc,很多不会的,真是寸步难行,好在这个世界有网络这个好东西,遇到问题百度一下或是GOOGLE总能找到看来很有道理的答案,为了方便以后自己的学习,就总结了一下放在这里,也欢迎大家发表真知灼见。
//很好,很方便,无需修改,可作为程序模块直接调用。
//获取软件当前的版本
//该版本号是在资源文件中的../Version/VS_VERSION_INFO/FILEVERSION的值
CString CMFCVLCDlg::GetFileVer()
{
}
//-------------------------------------------------------------------------------------------------------------------
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;
- FileTimeToSystemTime(&(ffd.ftLastWriteTime), &stUTC);
- SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stLocal);
- CString strTmp;
- strTmp.Format("%d-%d-%d,%d:%d", stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute);
- //--
- return strTmp;
- }