繁体   English   中英

获取C ++中的DLL版本

[英]Obtain DLL version in C++

有人可以指向我使用C ++代码从DLL文件中获取版本号的函数吗? 我知道Windows具有该信息,因为我可以右键单击该文件,查看属性,然后查看版本。 我只需要在C ++中以编程方式检索版本。

您要使用WinFile函数GetFileVersionInfo 下面是其用法的一个稍作修改的工作示例 它将打印详细信息页面上的版本。 您需要做的就是通过使用ie包含vector和windows.h的标头,并包含version.lib。 编译指示: #pragma comment(lib, "version.lib")

LPTSTR lpszFilePath = L"d:\\AcroRd32.dll";

DWORD dwDummy;
DWORD dwFVISize = GetFileVersionInfoSize(lpszFilePath, &dwDummy);

std::vector<BYTE> versionInfoVec(dwFVISize);

GetFileVersionInfo(lpszFilePath, 0, dwFVISize, versionInfoVec.data());

UINT uLen;
VS_FIXEDFILEINFO *lpFfi;

VerQueryValue(versionInfoVec.data(), _T("\\"), (LPVOID *)&lpFfi, &uLen);

DWORD dwFileVersionMS = lpFfi->dwFileVersionMS;
DWORD dwFileVersionLS = lpFfi->dwFileVersionLS;

DWORD dwLeftMost = HIWORD(dwFileVersionMS);
DWORD dwSecondLeft = LOWORD(dwFileVersionMS);
DWORD dwSecondRight = HIWORD(dwFileVersionLS);
DWORD dwRightMost = LOWORD(dwFileVersionLS);

std::cout << dwLeftMost << "." << dwSecondLeft << "."
    << dwSecondRight << "." << dwRightMost << std::endl;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM