要在VC++中获取软件版本号,可以使用Win32 API中的GetFileVersionInfo和VerQueryValue函数。以下是一个简单的示例代码,它演示了如何获取软件版本号:
#include <Windows.h>
#include <iostream>
#pragma comment(lib, "Version.lib")
int main() {
// 获取文件版本信息
DWORD handle;
DWORD size = GetFileVersionInfoSize("path/to/your/file.exe", &handle);
if (size == 0) {
std::cout << "无法获取文件版本信息" << std::endl;
return 1;
}
char *buffer = new char[size];
if (!GetFileVersionInfo("path/to/your/file.exe", handle, size, buffer)) {
std::cout << "无法获取文件版本信息" << std::endl;
delete[] buffer;
return 1;
}
// 获取文件版本号
VS_FIXEDFILEINFO *info;
UINT info_size;
if (!VerQueryValue(buffer, (TEXT)"\\", (LPVOID*)&info, &info_size)) {
std::cout << "无法获取文件版本号" << std::endl;
delete[] buffer;
return 1;
}
DWORD major = HIWORD(info->dwFileVersionMS);
DWORD minor = LOWORD(info->dwFileVersionMS);
DWORD revision = HIWORD(info->dwFileVersionLS);
DWORD build = LOWORD(info->dwFileVersionLS);
std::cout << "版本号:" << major << "." << minor << "." << revision << "." << build << std::endl;
// 释放内存
delete[] buffer;
return 0;
}
在这个示例中,我们首先使用GetFileVersionInfoSize和GetFileVersionInfo函数获取文件版本信息。然后,我们使用VerQueryValue函数获取文件版本号,并将其分解为主版本号、次版本号、修订版本号和构建号。最后,我们输出版本号并释放内存。
请注意,需要将"path/to/your/file.exe"替换为实际的文件路径。