gpt4 book ai didi

c++ - C++获取DLL版本

转载 作者:行者123 更新时间:2023-11-28 06:18:13 24 4
gpt4 key购买 nike

有人能给我指点一个函数来简单地使用 C++ 代码从 DLL 文件中获取版本号吗?我知道 Windows 有信息,因为我可以右键单击该文件,查看属性并查看版本。我只需要在 C++ 中以编程方式检索版本。

最佳答案

您想使用 GetFileVersionInfo WinAPI 函数。下面是一个稍微修改过的工作 example它的用途。它将打印详细信息页面上的版本。您只需要使用 ie 包含 vector 和 windows.h 的 header ,并包含 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;

关于c++ - C++获取DLL版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com