c++ 获取exe或者dll文件的版本号
时间: 2023-12-12 17:03:04 浏览: 315
获取exe和dll文件的版本号
5星 · 资源好评率100%
在C++中,可以使用Windows API函数`GetFileVersionInfoSize`、`GetFileVersionInfo`、`VerQueryValue`来获取exe或者dll文件的版本号。具体实现如下:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
const char* file_path = "example.exe"; // 文件路径
DWORD file_version_size = 0;
file_version_size = GetFileVersionInfoSize(file_path, NULL);
if (file_version_size > 0)
{
BYTE* file_version_buffer = new BYTE[file_version_size];
if (GetFileVersionInfo(file_path, 0, file_version_size, file_version_buffer))
{
UINT struct_len = 0;
VS_FIXEDFILEINFO* file_version_info = NULL;
if (VerQueryValue(file_version_buffer, "\\", (LPVOID*)&file_version_info, &struct_len))
{
DWORD major = HIWORD(file_version_info->dwFileVersionMS);
DWORD minor = LOWORD(file_version_info->dwFileVersionMS);
DWORD build = HIWORD(file_version_info->dwFileVersionLS);
DWORD revision = LOWORD(file_version_info->dwFileVersionLS);
std::cout << "File version: " << major << "." << minor << "." << build << "." << revision << std::endl;
}
}
delete[] file_version_buffer;
}
return 0;
}
```
其中,`GetFileVersionInfoSize`函数用于获取文件版本信息的大小,`GetFileVersionInfo`函数用于获取文件版本信息,`VerQueryValue`函数用于提取指定信息块中的信息。最终,我们可以得到文件的版本号,并输出到控制台中。
阅读全文