在C++中获取 DLL 版本
Obtain DLL version in C++
有人可以指出我一个函数,使用C++代码简单地从DLL文件中获取版本号吗?我知道 Windows 有这些信息,因为我可以右键单击文件、查看属性并查看版本。我只需要在C++中以编程方式检索版本。
你想使用 GetFileVersionInfo WinAPI 函数。下面是一个稍微修改其使用的工作示例。它将打印详细信息页面上的版本。您所需要的只是使用 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;
相关文章:
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 不同的Visual Studio版本中缺少.dll
- 链接库错误 c/缺少 dll/错误版本?
- 如何将_RICHEDIT_VER(riched20.dll)升级到版本3或更高版本
- 如果使用低于 VS2015 的 vc++ 编译器版本编译,则 DLL 中的访问冲突
- 当使用CreateObject从VBScript引用DLL时C++如何处理DLL版本?
- Microsoft Visual Studio 2008,版本9.0.30739.1 SP,DLL构建错误
- 创建 "no-op" DLL 版本?
- 由于mcordbi.dll的错误版本,托管调试不再起作用
- 系统DLL如何与不兼容版本的Visual Studio一起使用
- 窗口如何处理加载两个不同版本的 DLL
- 调用64位C/C++DLL的C#应用程序崩溃,但运行32位版本
- Windows 10未加载版本可执行文件的DLL
- 在C++中获取 DLL 版本
- 我的Python interpreter使用的msvcrXX.dll版本
- 如何设置 XAudio2 dll 版本
- 避免DLL版本控制问题
- DirectX多个DLL版本
- 在c++中以编程方式从DLL中获取DLL版本-再次