Pyinstaller加入版本和版权信息

article/2025/10/3 11:13:39

目录

参考链接

前言

一. 获取版本信息

1. 拖过来个有版本和版权信息的exe文件

2. 放置一个txt文件

我们接着放置一个txt文件叫file_version_info.txt。这名字不能改,Pyinstaller自动就把版权信息放在这里。

 3.开始获取

二. 修改

三. 打包

参考链接

pyinstaller打包exe加入版本和版权信息

pyinstaller使用方法(教你怎么加版权信息)_pyinstaller添加版权_我是飞飞酱的博客-CSDN博客

前言

其实我在看这篇文章时发现了一些问题,第一步Pyinstaller就抛出报错。我自己尝试了许多遍,再看cmd里的解释里我发现了错误,所以我就今天发一下这篇文章。

一. 获取版本信息

我们就是如果使用现成的就会有许许多多问题,这里就不细讲。我直接告诉你怎么获取,在根据情况自己修改。

1. 拖过来个有版本和版权信息的exe文件

Pyinstaller添加版权需要把信息写在一个txt文件里(其他后缀的应该也可以,我没有试过),我们需要先找一个范本来修改。

我们新建个文件夹,把有版本和版权信息的exe文件拖进去。我们不用管这个exe文件运行需要的其他文件,我们只是获取一下版本和版权信息,不运行。我这里用经典的Dev-C++为示例。

2. 放置一个txt文件

我们接着放置一个txt文件叫file_version_info.txt。这名字不能改,Pyinstaller自动就把版权信息放在这里。

 3.开始获取

我们再文件位置里输入cmd,弹出命令提示符。

 

 接着,我们打开命令提示符后输入

pyi-grab_version.exe devcpp.exe

如果没有什么问题的话应该会这样

这样我们已经拿到版权的范本了。

二. 修改

 可以按照以下方式修改

VSVersionInfo(ffi=FixedFileInfo(filevers=(1, 0, 0, 0),  # 文件版本prodvers=(5, 11, 0, 0),  # 生产商mask=0x3f, # 两个位掩码flags=0x0,OS=0x4,  # 关于操作系统的,无需修改它fileType=0x1,  # 文件类型,这里是应用软件subtype=0x0,  # 文件功能,这里是未定义date=(0, 0)  # 没见到哪里显示),kids=[StringFileInfo([StringTable('040904E4',[StringStruct('CompanyName', 'Bloodshed Software'),  # 鼠标搁那里会显示的东西StringStruct('FileDescription', 'Dev-C++ IDE'),  # 文件名StringStruct('FileVersion', '5.11.0.0'),  # 版本号StringStruct('InternalName', 'devcpp.exe'),  # 原始文件名StringStruct('LegalCopyright', 'Copyright Bloodshed Software'),  # 版权,"Copyright"指盈利版权StringStruct('LegalTrademarks', ''),StringStruct('OriginalFilename', 'devcpp.exe'),  # 原始文件名,不知道为什么要再搞一次StringStruct('ProductName', 'Dev-C++'),  # 产品名称StringStruct('ProductVersion', '5'),  # 版本号,再详细信息里会有显示StringStruct('Comments', 'Under the GNU General Public License')])]), VarFileInfo([VarStruct('Translation', [1033, 1252])])  # 语言,[2052, 1200]是简体,中国]
)

三. 打包

打包时你可以输入

pyinstaller -i .ico File --noconfirm -w --version-file file_version_info.txt 文件位置

成功! 


http://chatgpt.dhexx.cn/article/wX3sRX1M.shtml

相关文章

版权信息的生成方法

网页底部添加网站的版权信息,将版权信息封装到JavaBean中,可重复利用 新建JavaBean类 public class StringUtil3 {private String copyrightStr"xxxxxxxxxxx xxxxxxxxxxxxx--xxxxxxxxxxxxxxxxxxxx-xxx";public String getCopyrightStr() {ret…

C++虚函数表

一、背景知识(一些基本概念) 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。 纯虚函数(Pure Virtual Function):基类中没有实现体…

虚函数和虚函数表

多态是由虚函数实现的,而虚函数主要是通过虚函数表(V-Table)来实现的。 如果一个类中包含虚函数(virtual修饰的函数),那么这个类就会包含一张虚函数表,虚函数表存储的每一项是一个虚函数的地址…

C++ 虚函数表 vfptr

前言 大家都应该知道C的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C将变得一…

c++ 虚函数及虚函数表

多态”的关键在于通过基类指针或引用调用一个虚函数时&#xff0c;编译时不确定到底调用的是基类还是派生类的函数&#xff0c;运行时才确定。 #include <iostream> using namespace std; class A { public:int i;virtual void func() {}virtual void func2() {} }; cla…

虚函数表结构

虚函数表 所谓虚函数表就是存放着当前类中所有虚函数地址的表。在实例化一个具有虚函数的类时&#xff0c;这个表也被分配到这个实例对象的内存中&#xff0c;通过虚函数表可以指明所要调用的函数的位置。在C编译器中虚函数表的地址存放在对象的最前面&#xff0c;这是为了即使…

关于虚函数与虚函数表

首先&#xff0c;我们知道&#xff0c;C的动态多态是基于虚函数实现的 。 C能够在运行时确定调用的函数是因为引入了虚函数&#xff0c;在类中引入虚函数后,在程序编译期间就会创建虚函数表&#xff0c;表中每一项数据都是虚函数的入口地址。 然而&#xff0c;怎么才能访问到虚…

C++中的虚函数表

引言&#xff1a; 多态对于C这种面向对象的语言来讲&#xff0c;其重要性是不言而喻的&#xff0c;用了足足半天的时间来把我所理解的多态表达出来&#xff0c;其中还有很多细节需要以后补充。&#xff08;一个字一个字写&#xff0c;还要画图&#xff0c;太累了&#xff09; …

虚函数原理与虚函数表

目录 一、 虚函数 二、虚函数原理与虚函数表 一、 虚函数 虚函数&#xff1a; 使用 virtual 关键字声明的函数&#xff0c;是动态多态实现的基础。 非类的成员函数不能定义为虚函数。 类的静态成员函数不能定义为虚函数。 构造函数不能定义为虚函数&#xff0c;但可以将析构函…

c++虚函数和虚函数表

什么是虚函数? 用virtual 修饰的成员函数叫虚函数 没有虚构造函数 不写虚函数&#xff0c;没有默认的虚函数 虚函数对于类的影响&#xff1a;增加一个指针的内存 虚函数的存储&#xff1a;虚函数表(了解内容&#xff1a;就是一个指针存储所有虚函数的首地址[函数指…

虚函数表存储位置

前言 先说结论&#xff1a;虚函数表存储在只读数据段&#xff08;.rodata&#xff09;、虚函数存储在代码段&#xff08;.text&#xff09;、虚表指针的存储的位置与对象存储的位置相同&#xff0c;可能在栈、也可能在堆或数据段等。 相信大家知道虚表指针和虚函数存储的位置…

C++虚函数表详解

C的虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中&#xff0c;主要是一个类的虚函数的地址表&#xff0c;这张表解决了继承、覆盖(override)的问题&#xff0c;保证其能真实的反应实际的函数。这样&#xff0c;在有虚函数的类…

【虚函数指针 虚函数表】

文章目录 虚函数指针和虚函数表1.虚函数的含义2.虚函数的作用3.虚函数的实现原理 多态的实现原理普通类当类中存在虚函数子类继承父类不重写虚函数子类继承父类重写虚函数 1.虚函数表指针2.虚函数表 虚函数指针和虚函数表 1.虚函数的含义 只有用virtual声明类的成员函数&…

虚函数表 以及 虚函数表的继承过程

目录 一、虚函数表 和 虚表继承 1、虚函数表 2、虚表继承 (1) 子类未重写父类虚函数 (2) 子类重写了父类虚函数 二、虚表的特点 1、同一个类的对象的虚表指针相同 2、多继承时子类中的两个父类虚表地址不一样&#xff08;实际调用是同一个函数&#xff09; 三、虚表指…

C++虚函数和虚函数表原理

虚函数的地址存放于虚函数表之中。运行期多态就是通过虚函数和虚函数表实现的。 类的对象内部会有指向类内部的虚表地址的指针。通过这个指针调用虚函数。 虚函数的调用会被编译器转换为对虚函数表的访问&#xff1a; ptr->f(); //ptr代表this指针&#xff0c;f是虚函数…

虚函数 虚函数表

虚函数是面向对象编程函数的一种特定形态&#xff0c;是C用于实现多态的一种有效机制。C的多态可以分为静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态&#xff0c;而通过虚函数可以实现动态多态。实现函数的动态联编其本质核心则是虚表指针与虚函数表。 虚…

虚函数表和虚表指针

1&#xff0c;虚函数的含义 用virtual声明类的成员函数称之为虚函数 2&#xff0c;作用 用于实现多态 存在继承关系&#xff0c;子类继承父类子类重写了父类的virtual function子类以父类的指针或者引用的身份出现 3&#xff0c;虚函数的实现原理 其中的关键就是两点&#xf…

C++ 虚函数和虚函数表

一、虚函数 1.虚函数的概念 1.虚函数就是在基类中被关键字 virtual 说明&#xff0c;并在派生类中重新定义的函数。 2.虚函数的作用是允许在派生类中重新定义与基类同名的函数&#xff0c;并且可以通过基类指针或引用来访问基类和派生类中的同名函数。 3.虚函数的定义是在基类…

C++虚函数表剖析

关键词&#xff1a;虚函数&#xff0c;虚表&#xff0c;虚表指针&#xff0c;动态绑定&#xff0c;多态 一、概述 为了实现 C 的多态&#xff0c;C 使用了一种动态绑定的技术。这个技术的核心是虚函数表&#xff08;下文简称虚表&#xff09;。本文介绍虚函数表是如何实现动态…

C++ 虚函数表解析

C 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C中的虚函数的作用主要是实现了多态的机制。关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”&#x…