Windows平台下为可执行文件或动态库dll添加版本信息和图标

前言

1、平常我们可以看到在Windows可执行文件中,右键属性中含有文件版本,文件名称和版本等信息,本文讲述怎么添加这些信息。
2、在实际开发中,可能需要为Windows可执行文件exe添加图标,这个功能对于识别可执行文件还是很有用的。一般VS编译后的exe图标是默认图标,下面讲述为exe添加图标的方法。

1、Windows平台下为可执行文件或动态库dll添加版本信息

1.1 方法一

VS工程中建立资源文件,编译即可

这种方法比较简单,是借助VS工程,文件版本的信息其实是通过资源文件编译进去的。

1.2 方法二

MinGW或者Cygwin环境下为dll或exe添加版本信息

1、打开cmd,输入:

call "%VS120COMNTOOLS%../../VC/vcvarsall.bat"
call "E:\ProfessionalSoftware\MinGW\msys\1.0\msys.bat"

启动VS2010编译环境和MinGW环境,这里是为了使用命令windres和rc命令。

2、创建一个test.c文件:

#include "stdio.h"
int add(int a, int b)
{
    return a + b;
}

int main(int argc, char** argv)
{
    printf("********************");
}

3、创建资源文件Res.rc文件:

1 VERSIONINFO
FILEVERSION    0,1,22,33
PRODUCTVERSION 1,0,0,0
FILEFLAGS 0x1L
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x1L
BEGIN
   BLOCK "StringFileInfo"
   BEGIN
     BLOCK "080904E4"
     BEGIN
    VALUE "CompanyName", "My Company Name"
    VALUE "FileDescription", "My excellent application"
    VALUE "FileVersion", "6000"
    VALUE "InternalName", "my_app"
    VALUE "LegalCopyright", "My Name"
    VALUE "OriginalFilename", "my_app.exe"
    VALUE "ProductName", "My App"
    VALUE "ProductVersion", "6000"
     END
   END
   BLOCK "VarFileInfo"
   BEGIN
      VALUE "Translation", 0x809, 1252
   END

4、编译链接,将资源文件rc转换成res文件,然后链接到dll或exe中

gcc -c test.c -o test.o
windres Res.rc -O coff -o obj.res
gcc -o test test.o obj.res
或者:

cl -c test.c
windres Res.rc -O coff -o obj.res
link test.obj obj.res

另外一种方法就是采用rc命令将res文件转换成rc文件。

cl -DWIN64 -c obj.c -Foobj
rc -DWIN64 -fo obj.res obj.rc
link obj.obj obj.res

好的,现在就可以右键属性查看可执行文件的版本信息了。

2、Windows平台下为可执行文件添加图标

2.1 方法一:VS工程中直接添加图标

在项目中添加资源文件(*.rc),在资源视图中,右键资源文件,选择“添加资源”,在弹出的菜单选择添加类型-图标(icon),点击“导入”按钮,在弹出的选择对话框选择自己想要添加的程序图标文件(*.ico),保存资源文件后重新编译,即可看到编译出来的exe的图标即为刚刚选择的图标。

1、右击项目属性,添加资源,资源类型选择Icon,然后导入需要添加的图标ICON。
2、重新编译工程。

图标修改

2.2 方法二: 直接添加资源文件进行编译

res.rc文件如下:

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1               ICON                    "Panda.ico"
#endif    // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////

如下图所示:
exe文件图标、exe运行的任务栏图标和运行窗口标题栏都修改为了指定图标。
图标修改

3、相关知识

1). Windows资源文件rc定义和使用
2). Windows平台下为可执行文件或动态库dll添加版本信息
3). 动态库dll通过资源文件配置右击属性-详细信息的方法

THE END!


本博文只能阅读,谢绝转载,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2963033731@qq.com

文章标题:Windows平台下为可执行文件或动态库dll添加版本信息和图标

字数:950

本文作者:Soaring Lee

发布时间:2017-09-22, 15:13:47

最后更新:2021-06-14, 12:13:44

原始链接:https://soaringleefighting.github.io/2017/09/22/【PE系列】Windows平台下为可执行文件或动态库dll添加版本信息和图标/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏

相册