如何在D语言应用程序中添加图标?

3

我想为我的应用程序添加图标到exe文件中,该怎么做呢?我希望在使用dub构建我的应用程序时能够自动添加图标。


3
请查看这个教程:http://forum.dlang.org/thread/wogdypudrmrgwjysfkxg@forum.dlang.org#post-mailman.8.1363202377.4724.digitalmars-d-learn:40puremagic.com - Cui Heng
我想用Dub来完成它... - Suliman
我对dub不是很了解,但从文档中看到,也许可以使用preBuildCommand来调用资源编译器(参见上面的链接),并使用sourceFiles-windows列出.res文件(由资源编译器生成)来实现你所需的功能。 - Adam D. Ruppe
1个回答

4
我会将我的评论作为答案,因为这是我们能做到的最接近的。
要向应用程序添加图标,您首先需要创建一个资源文件,然后将图标添加到该文件中,并将该资源编译到exe文件中。我在旧帖子中解释过如何执行此操作,还有一个链接到维基页面:http://forum.dlang.org/post/mailman.8.1363202377.4724.digitalmars-d-learn@puremagic.com 要通过dub实现这一点,我建议向dub配置文件添加一个preBuildCommand,以编译资源,然后添加一个sourceFiles-windows参数来指定已编译的资源。如果将资源添加到dmd作为源文件,则它将知道该如何处理并将其传递给链接器。

我知道这是3年前的事了,但我遇到了一个我不理解的错误。icon.rc(1) : Error: 'icon.ico' doesn't contain a valid Windows 3.0 icon resource我用PNG格式制作了图标,将其缩小到16、32、64、128、256,并使用magick convert将它们转换成图标文件。这应该是一个有效的图标。 - Jacob Birkett
你正在进行32位还是64位的构建?也许文件版本不兼容32位(随附的D工具非常旧,而64位将使用Microsoft的)。另外,ICO文件应该在Windows Shell中显示为图像本身,如果没有,则格式可能是错误的。 - Adam D. Ruppe
我不确定。如果您问的是是否使用了“-32”标志,则没有使用。图标应该可以正常工作,我已经在其他应用程序中使用了以这种方式生成的图标。这是我正在尝试使用的图标:https://tknk.io/lA4h - Jacob Birkett
有没有一种编程方式可以在不使用资源文件的情况下以编程方式添加图标到可执行文件中?如果我能编写一个小脚本,在编译可执行文件后运行它来添加图标,我认为这会更容易。Resource Hacker是如何做到的? - Jacob Birkett
你可以直接使用Resource Hacker来完成。但是,文件看起来还不错,我认为只是古老的rcc.exe不喜欢256x256 png图标。如果您删除该条目,则旧的rcc.exe将成功编译并添加图标。因此,这是一种选择,或者在事后使用Resource Hacker添加,或者使用Microsoft自己的rc.exe程序(顺便说一下,Visual Studio已经内置了它)来编译资源,然后将其链接。 - Adam D. Ruppe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接