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;
}
当然,通过类似方法还可以获得更丰富的版本信息,有用到的朋友可以参考自己写下