当你做完一个项目对产品进行发布时,如果没有在About对话框中及时展现版本最新信息,如果以后对此产品进行维护,可能会带来一定的麻烦。为了消除这种不必要的麻烦,应该在产品发布时更改文件版本号和产品版本号后,在About对话框中及时展现更新后的版本信息,这样以后维护更加方便,而且显得产品比较专业。为了展现版本信息,需要在About对话框中设置两个静态控件:一个是显示版本,一个是显示发布日期。并同时为这两个控件关联两个CString类型成员变量:m_strVer和m_strDate。另外,在CAboutDlg类的构造函数中增加如下代码:
m_strDate = _T("发布时间: ");
m_strDate += __DATE__;
m_strDate += ", ";
m_strDate += __TIME__;
// get file version
TCHAR buf[_MAX_PATH];
::GetModuleFileName(theApp.m_hInstance, buf, _MAX_PATH);
DWORD handle;
DWORD versize = ::GetFileVersionInfoSize(buf, &handle);
CString strVer;
if(versize > 0)
{
BYTE *pData = new BYTE[versize];
::GetFileVersionInfo(buf, handle, versize, pData);
_tcscpy(buf, _T("\\"));
void *pInfo;
UINT size;
if(::VerQueryValue(pData, buf, &pInfo, &size))
{
VS_FIXEDFILEINFO* pVer = (VS_FIXEDFILEINFO *)pInfo;
strVer.Format(_T("%d.%d.%d.%d"),
HIWORD(pVer->dwProductVersionMS),
LOWORD(pVer->dwProductVersionMS),
HIWORD(pVer->dwProductVersionLS),
LOWORD(pVer->dwProductVersionLS));
m_strVer += strVer;
}
delete pData;
}
这样的话,编译是通不过的,需要一个Version.lib,在Link中设置一下就可以了,同时,文件版本号和产品版本号要同时修改才能生效。
阅读(851) | 评论(0) | 转发(0) |