How to get the version information of a DLL file in C++

前端 未结 4 2156
孤独总比滥情好
孤独总比滥情好 2020-12-09 05:18

I need to get the version information of a DLL file I created in Visual Studio 2008 C++. How do I get it?

4条回答
  •  悲哀的现实
    2020-12-09 05:44

    Thanks for the answers.

    This worked for me:

    WCHAR fileName[_MAX_PATH];
    DWORD size = GetModuleFileName(g_dllHandle, fileName, _MAX_PATH);
    fileName[size] = NULL;
    DWORD handle = 0;
    size = GetFileVersionInfoSize(fileName, &handle);
    BYTE* versionInfo = new BYTE[size];
    if (!GetFileVersionInfo(fileName, handle, size, versionInfo))
    {
        delete[] versionInfo;
        return;
    }
    // we have version information
    UINT                len = 0;
    VS_FIXEDFILEINFO*   vsfi = NULL;
    VerQueryValue(versionInfo, L"\\", (void**)&vsfi, &len);
    aVersion[0] = HIWORD(vsfi->dwFileVersionMS);
    aVersion[1] = LOWORD(vsfi->dwFileVersionMS);
    aVersion[2] = HIWORD(vsfi->dwFileVersionLS);
    aVersion[3] = LOWORD(vsfi->dwFileVersionLS);
    delete[] versionInfo;
    

提交回复
热议问题