在项目中显示版本号
来源:互联网 发布:男士皮鞋推荐知乎 编辑:程序博客网 时间:2024/05/22 14:05
//获取版本号
#pragma comment(lib,"Version.lib")
BOOL GetFileVersion(TCHAR * pFileName,TCHAR * pVersion)
{
if(pFileName == NULL || pVersion == NULL)
return FALSE;
DWORD dwVerSize;
DWORD dwHandle;
LPVOID pVerBuffer = NULL;
dwVerSize = GetFileVersionInfoSize(pFileName, &dwHandle);
if (dwVerSize == 0)
return FALSE;
pVerBuffer = new BYTE[dwVerSize+1];
if (GetFileVersionInfo(pFileName, 0, dwVerSize, pVerBuffer))
{
VS_FIXEDFILEINFO * pInfo = NULL;
unsigned int nInfoLen;
unsigned int cbTranslate = 0;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
TCHAR szVersionTmp[128] = {0};
BOOL bVerQuery = VerQueryValue(pVerBuffer, TEXT("\\VarFileInfo\\Translation"),(LPVOID*)&lpTranslate,&cbTranslate);
// Read the file description for each language and code page.
for( int i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
char SubBlock[200];
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\FileVersion"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
void *lpBuffer=NULL;
unsigned int dwBytes=0;
bVerQuery = VerQueryValue(pVerBuffer,
SubBlock,
&lpBuffer,
&dwBytes);
CString strTemp=(char *)lpBuffer;
strcat(szVersionTmp,strTemp);
}
if(bVerQuery)
{
strcpy(pVersion,szVersionTmp);
if(pVerBuffer != NULL)
{
delete []pVerBuffer;
}
return TRUE;
}
}
if(pVerBuffer != NULL)
{
delete []pVerBuffer;
}
return FALSE;
}
#pragma comment(lib,"Version.lib")
BOOL GetFileVersion(TCHAR * pFileName,TCHAR * pVersion)
{
if(pFileName == NULL || pVersion == NULL)
return FALSE;
DWORD dwVerSize;
DWORD dwHandle;
LPVOID pVerBuffer = NULL;
dwVerSize = GetFileVersionInfoSize(pFileName, &dwHandle);
if (dwVerSize == 0)
return FALSE;
pVerBuffer = new BYTE[dwVerSize+1];
if (GetFileVersionInfo(pFileName, 0, dwVerSize, pVerBuffer))
{
VS_FIXEDFILEINFO * pInfo = NULL;
unsigned int nInfoLen;
unsigned int cbTranslate = 0;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
TCHAR szVersionTmp[128] = {0};
BOOL bVerQuery = VerQueryValue(pVerBuffer, TEXT("\\VarFileInfo\\Translation"),(LPVOID*)&lpTranslate,&cbTranslate);
// Read the file description for each language and code page.
for( int i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
char SubBlock[200];
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\FileVersion"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);
void *lpBuffer=NULL;
unsigned int dwBytes=0;
bVerQuery = VerQueryValue(pVerBuffer,
SubBlock,
&lpBuffer,
&dwBytes);
CString strTemp=(char *)lpBuffer;
strcat(szVersionTmp,strTemp);
}
if(bVerQuery)
{
strcpy(pVersion,szVersionTmp);
if(pVerBuffer != NULL)
{
delete []pVerBuffer;
}
return TRUE;
}
}
if(pVerBuffer != NULL)
{
delete []pVerBuffer;
}
return FALSE;
}
- 在项目中显示版本号
- 在VS项目中使用SVN版本号作为编译版本号
- 在VS项目中通过GIT生成版本号作为编译版本号
- 在dll中添加版本号
- 如何在已创建好的cocos2dx项目中查看使用引擎的版本号
- 在MVC项目中如何显示图片
- Maven2项目中更新版本号的技巧
- Maven2项目中更新版本号的技巧
- 项目版本号
- 在UBUNTU中查看版本号命令
- 在驱动中获得Windows的版本号
- 在VS2013中利用SVN自动更新版本号
- 在ini文件中读取软件版本号
- 用MyEclips重新下载项目,然后会不显示的项目版本号,连项目中各个文件的状态图标也没有了
- (他山之石)MFC学习之路(一)VC MFC程序,在About对话框中获取并显示程序的版本号
- vs2005中在资源管理器中显示项目文件的结构
- GoLang 如何在网页显示当前环境的版本号
- 在Console项目中显示CString对象的问题
- 中国风整理贴——处理表重复记录(查询和删除)
- PXA310 平台上的浮点数支持方案研究
- 全球最大的黑客门户网站
- 修改selinux
- vi
- 在项目中显示版本号
- AjaxSamples.cn-为广大AJAX开发者提供支持和动力
- 盖茨于近日正式卸任-对盖茨职业生涯的一些观点
- 学习 ibatisnet + castle 笔记
- 75道逻辑思维题
- ActionScript 3:resources:apis:libraries
- asp.net错误处理类+SESSION类
- Flash&Flex相关技术资源大全
- 可以做点什么呢?