Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 更改可执行文件的图标,无需重新编译或重新链接,也无需使用microsoft sdk中的命令行工具_C++_Windows_Icons - Fatal编程技术网

C++ 更改可执行文件的图标,无需重新编译或重新链接,也无需使用microsoft sdk中的命令行工具

C++ 更改可执行文件的图标,无需重新编译或重新链接,也无需使用microsoft sdk中的命令行工具,c++,windows,icons,C++,Windows,Icons,我需要从命令行更改已编译和链接的可执行文件的图标 我不能在构建过程中这样做,因为这只是我构建中的一个工具,我不想每次需要使用它时都重新编译它 可执行文件被编译并链接到一个图标作为资源 另一个限制是更改必须从命令行完成,因此此步骤可以很容易地集成到构建过程中 由于我主要使用Microsoft编译器和链接器,我想知道是否只有使用Microsoft SDK中提供的工具才能实现这一点 此外,我知道,通常情况下,资源的更改会破坏任何数字签名,是否有办法保留签名(只有在可能的情况下,图标的更改才更重要)。任

我需要从命令行更改已编译和链接的可执行文件的图标

我不能在构建过程中这样做,因为这只是我构建中的一个工具,我不想每次需要使用它时都重新编译它

可执行文件被编译并链接到一个图标作为资源

另一个限制是更改必须从命令行完成,因此此步骤可以很容易地集成到构建过程中

由于我主要使用Microsoft编译器和链接器,我想知道是否只有使用Microsoft SDK中提供的工具才能实现这一点

此外,我知道,通常情况下,资源的更改会破坏任何数字签名,是否有办法保留签名(只有在可能的情况下,图标的更改才更重要)。任何帮助都将不胜感激。


注:我知道ResourceHacker,但它没有用,因为它没有命令行界面。

请参见此处的“CopyIcon”功能:


基本上,它归结为使用
UpdateResource()

更新编译的可执行文件中的图标资源,基本上就是这样。我使用底部的
UpdateResource()
编写了一个工具来更改可执行文件的图标,但我想知道这是否只能通过正确的命令行调用Microsoft SDK工具来实现。