内容摘自网络,在这里写一遍仅留作备份。
VC 发布程序时设置版本信息
在windwos资源管理器中,可以查看exe或dll文件的版本信息,那么在使用vc生成exe或dll时如何设置版本信息呢,其实非常简单,只要修改资源中的VS_VERSION_INFO中的相关字段即可。这样,在对程序进行了修改后,可以生成新的版本,就不用依靠文件的日期来判断是哪个版本的了。
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; //年-月-日,时:分 }
标签:szFile,stLocal,版本号,pVsInfo,CString,程序,pBuf,vc From: https://www.cnblogs.com/JaydonChia/p/17104045.html