获取某exe的版本号

bencharluo bencharluo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
DWORD dwlen = 0;
char* lpData = NULL;
BOOL bSuccess = FALSE;

dwlen = GetFileVersionInfoSize("E:\\work\\bin\\debug\\kexood.exe",0);
if(0 == dwlen)
{
::AfxMessageBox("获得版本信息失败1!");
return ;
}

lpData = new char[dwlen+1];
bSuccess = GetFileVersionInfo("E:\\work\\bin\\debug\\kexood.exe",0,dwlen,lpData);
if(!bSuccess)
{
::AfxMessageBox("获得版本信息失败2!");
delete lpData;
return ;
}

//在这个地方获得的lpData的数据好像不对(我估计的,测试了,好像不对)

LPVOID lpBuffer = NULL;
UINT uLen = 0;

bSuccess = VerQueryValue(lpData,TEXT("\\StringFileInfo\\080404b0\\OriginalFileName"),&lpBuffer,&uLen);
if(!bSuccess)
{
::AfxMessageBox("获得版本信息失败3!");
delete lpData;
return ;
}
//整个程序的错误提示是:获得版本信息失败3!
这些代码有哪里 不对吗?
...全文
评论 13
收藏 已收藏
分享
返回顶部
bencharluo
进程/线程/DLL 15,465 成员 49,169 内容