您的位置:首页 > 编程语言 > C语言/C++

C++获取文件版本信息

2017-11-29 17:05 369 查看
#include <io.h>

#pragma comment(lib, "Version.lib")

char* getLocalProgramVersion()
{
char FileName[MAX_PATH] = {0};
::GetModuleFileName(NULL, FileName, sizeof(FileName) - 1);

string asVer = "";
VS_FIXEDFILEINFO *pVsInfo;
unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);

int iVerInfoSize = GetFileVersionInfoSize(FileName, NULL);
if(iVerInfoSize != 0){
char *pBuf = NULL;
while(!pBuf){
pBuf = new char[iVerInfoSize];
}
if(GetFileVersionInfo(FileName, 0, iVerInfoSize, pBuf)){
if(VerQueryValue(pBuf, "\\", (void **)&pVsInfo, &iFileInfoSize)){
sprintf(pBuf, "%d.%d.%d.%d", HIWORD(pVsInfo->dwFileVersionMS), LOWORD(pVsInfo->dwFileVersionMS), HIWORD(pVsInfo->dwFileVersionLS), LOWORD(pVsInfo->dwFileVersionLS));
asVer = pBuf;
}
}
delete pBuf;
}
return asVer;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: