EVC获取文件的版本信息的方法

原创 2007年09月21日 16:29:00

  
 /**********获取、显示版本信息 开始*****************/
 TCHAR* fileName =_T("//Windows//NOTES.EXE");             //指定要获取信息的文件路径
 TCHAR *productVersion;         //用于存放产品版本号
  TCHAR SubBlock[100];          //用于存放要查询的信息名称,相当于数据库中要查询的某个属性名
 unsigned int productVersionLen;//用于存放获取的产品版本号的长度
 unsigned int cbTranslate;//用于存放文件的language and code pages的大小,这是信息版本的必要子项
 DWORD versionSize;//文件版本的全部信息的大小

////////////////////获取文件版本的全部信息的大小,开始////////////////////
 if((versionSize = GetFileVersionInfoSize(fileName,NULL))==0)
 {
  return;
 }
////////////////////获取文件版本的全部信息的大小,结束////////////////////


 LPVOID versionInfo = new DWORD[versionSize];     //为versionInfo 分配存储空间

//////////////////////////////获取文件版本的全部信息,开始/////////////////////////////////////
 if(GetFileVersionInfo(fileName,NULL,versionSize,versionInfo)==0)
 {
  return;
 }
 //////////////////////////////获取文件版本的全部信息,结束/////////////////////////////////////

 //定义language and code page结构体,方便查询
 struct LANGANDCODEPAGE
 {
  WORD wLanguage;
  WORD wCodePage;
 } *lpTranslate;  //指向结构体的指针

.
 memset(SubBlock,'0',sizeof(SubBlock));//清空内存

 //获取文件的language and code pages,保存在lpTranslate结构体中,开始//
 VerQueryValue(versionInfo,
              TEXT("//VarFileInfo//Translation"),
              (LPVOID*)&lpTranslate,
              &cbTranslate);
 //获取文件的language and code pages,保存在lpTranslate结构体中,结束//

 /****************************获取ProductVersion,开始****************/
 //设置具体要获取的信息的名称,用SubBlock存储//
 wsprintf( SubBlock,
            TEXT("//StringFileInfo//%04x%04x//ProductVersion"),
            lpTranslate->wLanguage,
            lpTranslate->wCodePage);
 
 //获取ProductVersion,保存在productVersion中//
 VerQueryValue(versionInfo,
                SubBlock,
                (LPVOID*)&productVersion,
                &productVersionLen);
 /**********************获取ProductVersion,结束******************/

delete[] versionInfo;
delete lpTranslate;

MessageBox(productVersion,_T("ProductVersion"),MB_OK);
 /**********获取、显示版本信息 开始*****************/

本程序只获得了版本信息中的ProductVersion子项,同理可获得其他子项。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

获取exe文件版本信息

  • 2011-03-11 09:21
  • 30KB
  • 下载

GetFileVersionInfo 获取文件版本信息错误原因分析

概述 这两天遇到一个奇怪的问题:在一个进程中,通过GetFileVersionInfo去获取一个绝对路径文件的版本号时, 实际路径对应文件根本不存在,却获取到了版本号信息。在仔细分析GetFil...

获取文件版本信息

  • 2014-05-21 16:29
  • 1.45MB
  • 下载

python学习四:import模块方法、可变参数、字典key判断、版本信息获取、列表解析、

1. import模块方法 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src     |-- mod1.py     `-- test1.py   ...

对一个apk文件获取相应的版本信息和其他信息

需求是这样子的:一个app的新版本要通过另一台手机去检测升级并下载好这个新版本,然后使用局域网将这个apk传输到那台手机上在更新,听着是不是有点蛋疼。那么问题来了,我要怎么知道这个apk文件是新版本呢...

根据csproj文件查看项目的版本信息

使用txt打开csproj文件,查找ProjectTypeGuids,将guid跟下面的表对应就ok了 By Description ASP.NET MVC 1.0 {6...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)