• VC++ 获取exe或者dll版本信息


    #include <iostream>
    #include <atlstr.h>
    #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;
    }
  • 相关阅读:
    手起刀落-一起来写经典的贪吃蛇游戏
    同步、异步、回调执行顺序之经典闭包setTimeout分析
    起步
    设计模式之单例模式与场景实践
    青春是如此美好,又怎忍平凡度过
    nvm管理不同版本的node和npm
    起步
    基础
    调用wx.request接口时需要注意的几个问题
    微信小程序实现各种特效实例
  • 原文地址:https://www.cnblogs.com/chechen/p/10077449.html
Copyright © 2020-2023  润新知