如何将编译资源(.res)文件链接到可执行文件

我想要做的是以编程方式更新可执行文件的资源。

我有一个二进制资源(.res)文件containg位图,图标,版本信息和清单,用资源编辑器创build,并使用AutoHotkey编译的PE文件,我想要从.res文件复制资源的PE文件。

到目前为止,我曾经在ResourceHacker的命令提示符下做这个,但是ResourceHacker不能被重新分配,除此之外我想更优雅地做这个。

所以我正在寻找WinAPI函数,似乎有办法做到这一点: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms648008%28v=vs.85%29.aspx
但问题是本文介绍了如何将资源从可执行文件复制到另一个文件,并且您不能用LoadLibrary / LoadLibraryEx导入不可执行文件(.res文件)。

似乎还有一种方法可以使用Visual Studio中的工具来执行此操作,特别是LINK.exe 。 但我不确定它是否可以在VS环境之外使用。 我不知道它是如何工作的。

您可以使用UpdateResource函数以编程方式更新资源

RES文件不涉及。 项目makefile系统使用RES文件来实现最小的资源重建…每当应用程序被重新链接时,都不必重新编译,只需嵌入即可。 但是,您并没有重新链接应用程序并丢失现有资源,因此只更新您想要更改的资源即可。

如果您的源资源已经在RES文件中编码,那么描述“资源文件格式”的这个页面可以帮助您提取它们。 它还介绍了LINK.exe用于资源嵌入的使用。 LINK.exe是作为Visual Studio的一部分安装的,但在许多版本的Platform SDK和Windows DDK中也可以使用它。