vc mfc代码中获得程序资源中版本信息的方法

http://www.7es.cn/Software_development/124.shtml

vc mfc代码中获得程序资源中版本信息的方法

vc资源编辑可以对应用程序的版本信息进行设定,编译好的执行文件可以在文件属性中看到文件版本、程序版本等版本信息。

一般用户是不太主意文件属性终端的版本信息的,那么如果能让版本信息显示到界面上就直观多了,并且可以统一管理版本信息而不用每次编辑界面。

折腾了一番,写了如下函数,可以获取并返回资源文件中设定的版本号字符串。

CString GetAppVersion()  
{  
  // 获取应用程序路径
 TCHAR szAppPath[MAX_PATH] = {0};  
 ::GetModuleFileName(NULL, szAppPath, MAX_PATH);  

 // 获取版本信息
 VS_FIXEDFILEINFO *VInfo;  
 UINT i;  
 char *buf;  
 int ma,mj,r,b;  
 CString sReturn = "";  
 i = GetFileVersionInfoSize(szAppPath, 0);  
 buf=   new   char[i];  

 if (GetFileVersionInfo(szAppPath, 0, i, buf) != 0)  
 {
  if (VerQueryValue(buf,_T("\\"),(LPVOID*)&VInfo,&i))  
  {  
   ma = VInfo->dwFileVersionMS >> 16;  
   mj = VInfo->dwFileVersionMS & 0x00ff;  
   r = VInfo->dwFileVersionLS >> 16;  
   b = VInfo->dwFileVersionLS & 0x00ff;  
   sReturn.Format(_T("%d.%d.%d.%d"), ma,mj,r,b);   
  }  
 }   
 delete []buf;   
 return sReturn;
}

当然,通过类似方法还可以获得更丰富的版本信息,有用到的朋友可以参考自己写下

原文地址:https://www.cnblogs.com/carl2380/p/1919453.html