在 MFC 应用程序中,可以使用 GetFileVersionInfo 函数来获取程序版本信息。这个函数能够获取一个指定文件的版本信息,并将其存储在一个缓冲区中。然后,可以使用 VerQueryValue 函数来解析版本信息并提取所需的信息。
#include <afxver_.h>
#pragma comment(lib,"version.lib")
void GetAppVersionInfo(CString& strVersion)
{
// 获取模块文件名
CString strModuleFileName;
GetModuleFileName(AfxGetInstanceHandle(), strModuleFileName.GetBuffer(MAX_PATH), MAX_PATH);
strModuleFileName.ReleaseBuffer();
// 获取文件版本信息大小
DWORD dwHandle;
DWORD dwSize = GetFileVersionInfoSize(strModuleFileName, &dwHandle);
if (dwSize == 0)
{
strVersion = _T("Failed to get version information");
return;
}
// 分配内存存储文件版本信息
LPBYTE lpData = new BYTE[dwSize];
if (!GetFileVersionInfo(strModuleFileName, dwHandle, dwSize, lpData))
{
delete[] lpData;
strVersion = _T("Failed to get version information");
return;
}
// 解析文件版本信息
VS_FIXEDFILEINFO* pFileInfo;
U

该代码展示了如何在MFC程序中使用GetFileVersionInfo和VerQueryValue函数获取并解析模块文件的版本信息,存储在CString类型的strVersion变量中。
最低0.47元/天 解锁文章
1365

被折叠的 条评论
为什么被折叠?



