Window(Qt/Vs)软件添加版本信息

Window(Qt/Vs)软件添加版本信息

文章目录

  • Window(Qt/Vs)软件添加版本信息
    • VS添加版本信息
      • 添加资源文件
      • 添加版本定义头
      • 自动更新版本
        • 添加批处理脚本
        • 设置生成事件
    • Qt添加版本信息
      • 添加资源文件
      • 文件信息修改
      • 自动更新版本
    • CMake添加版本信息
      • 添加资源文件
      • 自动更新版本
    • 参考

说明:

  • 这里说的版本信息是右键软件可以在信息信息中看到的相信
  • 这些都只是在Windows中的效果
  • window中基本上都是通过添加资源文件.rc实现的

VS添加版本信息

  • 测试环境:Vs2015

添加资源文件

  • 右键项目 -> 添加 -> 资源 -> 选择Version -> 新建
    在这里插入图片描述
    在这里插入图片描述

添加版本定义头

  • version.h
#pragma once#define _VAR2STR(s)			#s
#define VAR2STR(s)			_VAR2STR(s)#define VER_MAJOR			1
#define VER_MINOR			0
#define VER_REVISION		0
#define VER_BUILD			1
#define VERSION				VER_MAJOR.VER_MINOR.VER_REVISION.VER_BUILD
#define VERSION_RC			VER_MAJOR,VER_MINOR,VER_REVISION,VER_BUILD
#define STR_VERSION			VAR2STR(VERSION)
#define STR_VERSION_RC		STR_VERSION
#define COMPILE_TIME		__DATE__ " " __TIME__#define FILE_VERSION		STR_VERSION_RC
#define FILE_DESCRIPTION	"VS 自动修改软件版本号测试"
#define COMPANY				"搞不懂软件工作室"
#define PRODUCTNAME			"自动版本号测试软件"
#define SOFTWARENAME		"SoftwareVerioon.exe"
#define COPYRIGHT			"Copyright (C) 2022-2023"
  • 修改资源文件
#include "version.h"/
//
// Version
//VS_VERSION_INFO VERSIONINFOFILEVERSION VERSION_RCPRODUCTVERSION VERSION_RCFILEFLAGSMASK 0x3fL
#ifdef _DEBUGFILEFLAGS 0x1L
#elseFILEFLAGS 0x0L
#endifFILEOS 0x40004LFILETYPE 0x1LFILESUBTYPE 0x0L
BEGINBLOCK "StringFileInfo"BEGINBLOCK "080404b0"BEGINVALUE "CompanyName", COMPANYVALUE "FileDescription", FILE_DESCRIPTIONVALUE "FileVersion", FILE_VERSIONVALUE "InternalName", SOFTWARENAMEVALUE "LegalCopyright", COPYRIGHTVALUE "OriginalFilename", SOFTWARENAMEVALUE "ProductName", PRODUCTNAMEVALUE "ProductVersion", STR_VERSION_RCENDENDBLOCK "VarFileInfo"BEGINVALUE "Translation", 0x804, 1200END
END#endif    // 中文(简体,中国) resources
/

自动更新版本

添加批处理脚本
  • 未完成

  • 使用批处理脚本完成版本号增加的工作


设置生成事件
  • 右键项目 -> 配置属性 -> 生成事件 -> 后期生成事件 -> 命令行 -> 添加命令

Qt添加版本信息

  • 测试环境:Qt5.12.10、Qt5.15.2

添加资源文件

  • 只需要在.pro中添加VERSION qmake便会自动生成

    VERSION = 1.0.0
    
  • 但是如果修改资源文件每次重新构建时会重新生成一个资源文件覆盖掉以前的

  • 给出的建议是先让qmake自动生成然后,将修改好的拷贝到源文件,并在pro中添加资源文件

  • 这样做的目的是让qmake生成一个模板,当然如果已经有可直接添加

    RC_FILE += $PWD/xxx.rc
    
  • 如果使用RC_ICON添加应用图标可能会失效,推荐在RC文件中添加

    # 之前使用 RC_ICONS 添加 图标的方式可能不行
    RC_ICONS = xxxx.ico
    # 在资源文件中添加
    IDI_ICON1 ICON DISCARDABLE "xxxx.ico"
    

文件信息修改

  • 方法是通用的可以直接用vs上面的文件 rc,version.h的定义
  • 只是需要用上面的方法添加资源文件

自动更新版本

  • 未完成

CMake添加版本信息

添加资源文件

  • CMake在Windows平台依然是通过添加资源文件的方式实现

    set(RC_FILE ${PROJECT_SOURCE_DIR}/xxx.rc)    # 添加资源文件
    
  • 编译时将资源文件变量也加入其中

自动更新版本

  • 未完成

参考

VS DLL文件和EXE文件添加文件版本信息-CSDN博客

Visual studio每次build自动增加版本号 - onemuji - 博客园 (cnblogs.com)

个比较实用的VS C++版本号自增的实现方式_vscod 属性增加版本信息-CSDN博客

使用资源文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#ESP32S3R8N8建立工程(VSCODE)点亮LED

1.参考文档 【立创ESP32S3R8N8】IDF入门手册 - 飞书云文档 (feishu.cn)https://lceda001.feishu.cn/wiki/GOIlwwfbIi1SC3k8594cDeFVn8g 2.建立工程 3.运行效果 4.更改配置 5.插播 之前配置的环境是有问题的,就算有自动检测也要仔细检查,必须严格按照以…

VMware安装ubuntun虚拟机使用桥接模式无法上网问题解决

问题:最近准备使用VMware虚拟机搭建k8s集群服务,因为需要在同一个网段下,我使用桥接的方式,我发现主机在使用有线连接时虚拟机网络连接正常,但是使用无线网就显示连接不上网络。 解决方法 一、查看网络连接&#xff…

aardio封装库) 微软开源的js引擎(ChakraCore)

前言 做爬虫肯定少不了JavaScript引擎的使用,比如在Python中现在一般用pyexecjs2来执行JavaScript代码,另外还有一些其他执行JavaScript的库: https://github.com/eight04/node_vm2: rpc调用nodejs,需要安装nodehttps://github.…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过,在使用Spring Data JPA时,DAO层的Respository通过继承J…

BigKey的危害

1.2.1、BigKey的危害 网络阻塞 对BigKey执行读请求时,少量的QPS就可能导致带宽使用率被占满,导致Redis实例,乃至所在物理机变慢 数据倾斜 BigKey所在的Redis实例内存使用率远超其他实例,无法使数据分片的内存资源达到均衡 Redis阻…

Python中动画显示与gif生成

1. 动画生成 主要使用的是 matplotlib.animation ,具体示例如下: import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np fig, ax plt.subplots() t np.linspace(0, 3, 40) g -9.81 v0 12 z g * t**2 / …

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件,在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义,后面那两个文件用于配置系…

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube 前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。 简介 MetaTube 是一个媒体服务器插件,主要用于 Emby 和 Jellyfin 媒体服务器。它的主要功能是从互…

C++之const用法小结

在C中,const关键字具有多种用法,主要用于声明常量,确保某些变量的值在程序运行期间不会被修改。以下是const在C中的一些常见用法: 1.声明常量: 使用const声明的变量是常量,其值在初始化后不能再被修改。 …

【数据结构】链表专题2

前言 本篇博客继续探讨有关链表的专题,这片博客的题,提前打个预防针,有点意思哦,哈哈哈,话不多说,进入正文 💓 个人主页:小张同学zkf ⏩ 文章专栏:数据结构 若有问题 评论…

ASP.NET淘宝店主交易管理系统的设计与实现

摘 要 淘宝店主交易管理系统主要采用了ASPACCESS的B/S设计模式,通过网络之间的数据交换来实现客户、商品、交易的管理和对客户、商品、交易统计工作,从而提高淘宝店主在管理网店过程中的工作效率和质量。 系统分为基本资料模块,统计资料模…

北京大学肖臻老师《区块链技术与应用》P14(ETH概述)和P15(ETH账户)

1️⃣ 参考 北京大学肖臻老师《区块链技术与应用》 P14 - ETH概述篇P15 - ETH账户篇 1️⃣4️⃣ETH概述 ① 比特币与以太坊的对比 比特币(区块链 1.0)以太坊(区块链 2.0)出块时间大约10 min十几秒mining puzzle计算密集型Memo…

DRF中的请求入口分析及request对象分析

DRF中的请求入口分析及request对象分析 django restframework框架是在django的基础上又给我们提供了很多方便的功能,让我们可以更便捷基于django开发restful API 1 drf项目 pip install django pip install djangorestframework1.1 核心配置 INSTALLED_APPS [d…

【ARMv8/v9 系统寄存 3 -- system counter CNTPCT_EL0】

文章目录 ARMv8/v9 system countersystem counter读取函数实现 ARMv8/v9 system counter 所有使用Arm处理器的系统中都会包含一个标准化的通用定时器(Generic Timer)框架。这个通用定时器系统提供了一个系统计数器(System Counter&#xff0…

环形链表的经典问题

环形链表 环形链表的介绍链表中是否带环返回链表开始入环的第一个节点 本文主要介绍如何判断一个链表是否是环形链表,以及如何得到环形链表中的第一个节点。 环形链表的介绍 环形链表是一种链表数据结构,环形链表是某个节点的next指针指向前面的节点或指…

ctfshow-web入门-102

这个题我想记录一下,主要是这个方法属实是有点惊艳到我了。故而进行记录,也为了方便大家阅读理解。 看题目,根据题目我写一下我的分析: $_POST传入一个v1,$_GET传入一个v2,一个v3。 赋值符号 优先级高于…

微软如何打造数字零售力航母系列科普05 - Azure中计算机视觉的视觉指南

Azure中计算机视觉的视觉指南 什么是计算机视觉?如何使用Microsoft Azure将计算机视觉功能集成到应用程序和工作流中? 作者:Nitya Narasimhan 编辑:数字化营销工兵 •11分钟阅读 什么是计算机视觉?如何使用Microso…

WORD排版常见问题与解决方案

前言 近期使用word软件进行论文排版工作,遇到了一些常见的问题,记录一下,避免遗忘。 基本配置 系统环境:win10/win11 word版本:Microsoft Office LTSC 专业增强版 2021 问题与解决方案 问题1:页眉显示内…

[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100

题目: XX市机场停放了多架飞机,每架飞机都有自己的航班号CA3385, CZ6678, SC6508 等,航班号的前2个大写字母(或数字)代表航空公司的缩写,后面4个数字代表航班信息。 但是XX市机场只有一条起飞用跑道&am…

【网络原理】IP协议的地址管理和路由选择

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文) 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法) 【网络…