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

C++ 获取文件版本号的代码

2018-01-26 15:15 483 查看
// Test.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <Windows.h>

#include <tchar.h>

#include <string>

#include <iostream>

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

using namespace std;

 string GetFileVersion(PCSTR filename)

 { 

  string asVer = "";

  VS_FIXEDFILEINFO *pVsInfo;

  unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);

  int iVerInfoSize = GetFileVersionInfoSizeA(filename, NULL); 

  if(iVerInfoSize != 0)

  { 

    char *pBuf = NULL;

 

      while(!pBuf)

    {

    pBuf = new char[iVerInfoSize];

    }

      if(GetFileVersionInfoA(filename, 0, iVerInfoSize, pBuf))

      { 

       if(VerQueryValueA(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;

 }

int _tmain(int argc, _TCHAR* argv[])

{

   string strFilePath = "C:\\Users\\jhon am\\Desktop\\Backupper.exe";

   string version = GetFileVersion(strFilePath.c_str());

getchar();
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: