您的位置:首页 > 编程语言

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

2010-12-29 10:10 399 查看
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;
}

当然,通过类似方法还可以获得更丰富的版本信息,有用到的朋友可以参考自己写下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: