Windows下vs中对DLL、exe文件添加属性信息
一直以来发布的SDK或可执行文件,版本控制都是在内部函数实现,偶然发现居然可以通过右键属性直接查看版本等信息,顿时觉得很不专业,惭愧惭愧。
这里主要针对动态库DLL文件,exe文件也是一样的。
1. 建立一个动态库项目
这里用的是vs2015,直接使用模板创建项目即可
-
添加新项目
-
选择动态库DLL
-
创建完直接编译即可,生成的DLL文件,属性中可以看到,信息是空的
2. 给DLL文件添加属性信息
这里有两种方法:
- 使用vs新建资源文件rc,然后直接在vs资源视图中修改属性信息。
- 自己创建rc资源文件,手动写入信息;(这里可以创建一个头文件,用于存放宏定义信息)
推荐使用第二种方法
2.1 使用vs添加资源文件
2.1.1 添加版本属性资源文件
【右键项目】——【添加】——【资源】——【Version】——【添加】
会生成文件”test_version.rc”
2.1.2 修改、更新信息
在vs中,打开rc文件,直接可以修改信息。
2.2 自建rc文件及宏定义文件
之所以说是自建rc文件,是因为vs添加的资源文件,查看代码内容,不是很清晰,还不如在外部创建rc文件再添加进工程的好。
2.2.1 新建一个version.h的头文件(这个头文件的名字可以是任意的)
#pragma once
#define MAJOR_VERSION 1
#define MINOR_VERSION 1
#define REVISION_VERSION 0
2.2.2 新建rc文件,并添加到项目中
- 这里新建说的是在文件夹中右键,新建文本文件,改后缀名为.rc
- 【右键工程】——【添加】——【现有项】,选择刚才新建的rc文件
-
【右键rc文件】——【查看代码】
- 可以看到目前rc文件内容是空的,我们加入想要的信息
#include <windows.h>
#include "version.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION MAJOR_VERSION, MINOR_VERSION, REVISION_VERSION, 0
PRODUCTVERSION MAJOR_VERSION, MINOR_VERSION, REVISION_VERSION, 0
BEGIN
BLOCK"StringFileInfo"
BEGIN
BLOCK"040904E4"
BEGIN
VALUE"CompanyName", "xxx"
VALUE"FileDescription", "xxx sdk"
VALUE"FileVersion", MAJOR_VERSION, MINOR_VERSION, REVISION_VERSION, 0
VALUE"LegalCopyright", "Copyright 2020-2022 xxx"
VALUE"OriginalFilename", "xxx"
END
END
BLOCK"VarFileInfo"
BEGIN
VALUE"Translation", 0x409, 1252
END
END
2.3 查看效果
编译完成后,右键DLL文件,即可看到。
版权声明:本文为ShareProgress原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。