zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    exec系列函数和system函数
    fork函数相关总结
    文件的内核结构file和dup实现重定向
    进程基本概述
    fcntl 函数与文件锁
    文件的属性
    目录的操作
    文件的读取写入
    文件的打开关闭
    浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)
  • 原文地址:https://www.cnblogs.com/chechen/p/10077449.html
Copyright © 2011-2022 走看看