博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC++ 获取exe或者dll版本信息
阅读量:6683 次
发布时间:2019-06-25

本文共 1585 字,大约阅读时间需要 5 分钟。

#include 
#include
#pragma comment(lib,"version.lib")CString GetFileVersion(CString strExePath){ DWORD dwVerInfoSize = 0; DWORD dwVerHnd = 0; char *pBuf; CString asVer; VS_FIXEDFILEINFO *pVsInfo; unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO); dwVerInfoSize = GetFileVersionInfoSize(strExePath, NULL);//将版本信息资源读入缓冲区 if (dwVerInfoSize) { pBuf = new char[dwVerInfoSize]; if (GetFileVersionInfo(strExePath, dwVerHnd, dwVerInfoSize, pBuf))//获得生成文件使用的代码页及文件版本 { struct LANGANDCODEPAGE { WORD wLanguage; WORD wCodePage; }*lpTranslate; if (VerQueryValue(pBuf, _T("\\VarFileInfo\\Translation"), (void**)&lpTranslate, &iFileInfoSize)) { unsigned int version_len = 0; if (VerQueryValue(pBuf, _T("\\"), (void**)&pVsInfo, &version_len)) { asVer.Format(_T("%d.%d.%d.%d"), HIWORD(pVsInfo->dwFileVersionMS), LOWORD(pVsInfo->dwFileVersionMS), HIWORD(pVsInfo->dwFileVersionLS), LOWORD(pVsInfo->dwFileVersionLS)); } } } delete pBuf; } return asVer;}int main(){ //获取工作路径 TCHAR szModulePath[MAX_PATH * 2]; ::GetModuleFileName(NULL, szModulePath, _countof(szModulePath) - 2); PathRemoveFileSpec(szModulePath); CString strExe = szModulePath; strExe += L"\\My.dll"; CString strver = GetFileVersion(strExe); return 0;}

 

转载地址:http://bmxao.baihongyu.com/

你可能感兴趣的文章
ArchLinux上卸载高版本的jdk安装低版本的jdk
查看>>
青年之锋——文学之家
查看>>
js预解析+作用域+this指向
查看>>
iOS KVO监听readonly属性
查看>>
线性判别分析随记
查看>>
十一课堂|通过小游戏学习Ethereum DApps编程(2)
查看>>
当iPhone不再流行 Android它将如何面对未来?
查看>>
web前端浅谈,htmlcss脱离标准文档流相关
查看>>
Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis
查看>>
免费的容器架构可视化工具 | 阿里云应用高可用服务 AHAS 发布重大新特性
查看>>
随着加密货币市场稳定 比特币价格不可避免的会下降
查看>>
跟我学习dubbo-Dubbo管理控制台的安装(3)
查看>>
构建微服务:Spring boot
查看>>
物联网落地三大困境破解
查看>>
设置tomcat 启动参数
查看>>
Canal简介及配置说明
查看>>
mybatis知识点
查看>>
jQuery easyui
查看>>
flex datagrid 数据导出
查看>>
VARCHAR2长度限制
查看>>