MFC 获取程序版本信息

这篇具有很好参考价值的文章主要介绍了MFC 获取程序版本信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 在 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;
    UINT nFileInfoSize;
    if (VerQueryValue(lpData, _T("\\"), (LPVOID*)&pFileInfo, &nFileInfoSize))
    {
        DWORD dwFileVersionMS = pFileInfo->dwFileVersionMS;
        DWORD dwFileVersionLS = pFileInfo->dwFileVersionLS;

        WORD major = HIWORD(dwFileVersionMS);
        WORD minor = LOWORD(dwFileVersionMS);
        WORD build = HIWORD(dwFileVersionLS);
        WORD revision = LOWORD(dwFileVersionLS);

        // 构建版本字符串
        strVersion.Format(_T("%d.%d.%d.%d"), major, minor, build, revision);
    }
    else
    {
        strVersion = _T("Failed to get version information");
    }

    delete[] lpData;
}
调用 GetAppVersionInfo 函数,它将会返回一个 CString 类型的版本信息字符串。


调用文章来源地址https://www.toymoban.com/news/detail-845789.html

CString strVersion;
GetAppVersionInfo(strVersion);
// 现在 strVersion 中包含了程序的版本信息
这段代码会获取当前应用程序的版本信息,并存储在 strVersion 变量中。

到了这里,关于MFC 获取程序版本信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MFC获取客户区鼠标位置和屏幕区鼠标位置

    GetCursorPos获取屏幕区鼠标位置,参数是指向接收光标屏幕坐标的 POINT 结构的指针 MFC的窗体消息响应函数OnMouseMove,第二个CPoint参数代表当前鼠标点在客户区的位置 因此重载MFC的OnMouseMove函数就可以获取客户区鼠标位置 测试代码

    2024年02月08日
    浏览(41)
  • 【MFC】05.MFC六大机制:程序启动机制-笔记

    MFC程序开发所谓是非常简单,但是对于我们逆向人员来说,如果想要逆向MFC程序,那么我们就必须了解它背后的机制,这样我们才能够清晰地逆向出MFC程序,今天这篇文章就来带领大家了解MFC的第一大机制:程序启动机制: 首先,我们创建一个单文档架构程序,我们来观察一

    2024年02月13日
    浏览(35)
  • 【MFC】05.MFC第一大机制:程序启动机制-笔记

    MFC程序开发所谓是非常简单,但是对于我们逆向人员来说,如果想要逆向MFC程序,那么我们就必须了解它背后的机制,这样我们才能够清晰地逆向出MFC程序,今天这篇文章就来带领大家了解MFC的第一大机制:程序启动机制: 首先,我们创建一个单文档架构程序,我们来观察一

    2024年02月14日
    浏览(36)
  • MFC - 获取MainFrame,Doc,View,App等指针的方法

    在View中获得Doc指 针 在App中获得MainFrame指针 在View中获得MainFrame指针 获得View(已建立)指针 获得当前文档指针 获得状态栏与工具栏指针 获得状态栏与工具栏变量 在Mainframe获得菜单指针 在任何类中获得应用程序类 从文档类取得视图类的指针(1) 在App中获得文档模板指针 从文

    2024年02月01日
    浏览(29)
  • MFC中如何使用map获取对应key的Vlaue值

    使用map获取对应key的Vlaue值 引用#include using namespace std; //添加值 UDT_MAP_INT_CSTRING.insert(std::mapint, CString::value_type(1, _T(“a”))); UDT_MAP_INT_CSTRING.insert(std::mapint, CString::value_type(2, _T(“b”))); UDT_MAP_INT_CSTRING.insert(std::mapint, CString::value_type(3, _T(“c”))); UDT_MAP_INT_CSTRING.insert(std::mapint, CS

    2024年02月04日
    浏览(31)
  • MFC框架程序解析

    MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用。利用这些类,可以有效地帮助程序员完成Windows应用程序的开发。 即MFC是一个封装库, 该库封装了 Windows程序运行机

    2024年02月05日
    浏览(47)
  • 用MFC打开外部程序

    在MFC(Microsoft Foundation Classes)中,你可以使用 ShellExecute 函数来打开Notepad并加载指定的文件。 ShellExecute 函数是Windows API的一部分,它可以执行与操作系统相关的操作,例如打开文件、运行程序等。 以下是在MFC中使用 ShellExecute 函数打开Notepad并加载文件的示例代码: 在上述代

    2024年02月11日
    浏览(34)
  • MFC:程序的托盘显示

    关键技术,API函数 Shell_NotifyIcon ,具体查看msdn吧 https://www.cnblogs.com/htj10/p/11688347.html

    2024年02月07日
    浏览(35)
  • MFC简单字符串压缩程序

    一个mfc简单字符串压缩程序;按以下情况进行压缩; 1 仅压缩连续重复出现的字符。比如”abcbc”无连续重复字符,压缩后还是”abcbc”。 2 压缩的格式为”字符重复的次数+字符”。例如,”xxxyyyyyyz”压缩后就成为”3x6yz”。

    2024年02月07日
    浏览(43)
  • 微软MFC程序运行的正确顺序

     我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下微软MFC程序运行的正确顺序。这真的只是一个小众话题。但是对理解MFC很重要。 很多人写了一堆MFC程序,却不知道MFC程序是怎么运行顺序的。我们就来看一看这个问题。 我在之前的帖子中多次提到,main()函数也

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包