mfc获取自身版本号
2016-04-18 15:35
218 查看
1、引入lib
#pragma comment(lib, "Version.lib ")
2、增加如下代码
char cPath[200],szVersionBuffer[200];DWORD dwHandle,InfoSize;
CString strVersion;
::GetModuleFileName(NULL,cPath,sizeof(cPath)); //首先获得版本信息资源的长度
InfoSize = GetFileVersionInfoSize(cPath,&dwHandle); //将版本信息资源读入缓冲区
if(InfoSize==0)
{
AfxMessageBox(_T("None VerSion Supprot"));
return ;
}
char *InfoBuf = new char[InfoSize];
GetFileVersionInfo(cPath,0,InfoSize,InfoBuf); //获得生成文件使用的代码页及文件版本
unsigned int cbTranslate = 0;
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;
VerQueryValue(InfoBuf, 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;
VerQueryValue(InfoBuf,
SubBlock,
&lpBuffer,
&dwBytes);
CString strTemp=(char *)lpBuffer;
strVersion+=strTemp;
}
delete InfoBuf;
AfxMessageBox(strVersion);
相关文章推荐
- 接口(interface)原来是可以被继承(extends)的 2007-07-20 10:19:00
- 17、责任链模式(ChainofResponsibility)
- poj 2724 最大独立集
- 欢迎使用CSDN-markdown编辑器
- Android 加载高清大图
- 圆形选择菜单
- Hibernate介绍
- Android:身高、体重横向滚动刻度尺选择器
- 数据库中for update的使用
- React学习总结
- android 提高进程优先级 拍照永不崩溃(闪退)
- Web项目中 .classpath、.mymetadata、.project文件的作用
- 内核模块三要素及Makefile的设计
- 16、观察者模式(Observer)
- 错误:HTTP load failed (kCFStreamErrorDomainSSL, -9813)/Error Domain=NSURLErrorDomain Code=-1202
- 设置分隔线
- android推送,极光推送
- 【windows】是谁占用了你的端口?
- 无法启动此程序,因为计算机中丢失AdbWinApi.dll。尝试重新安装该程序以解决此问题
- Field 'email' doesn't have a default value