【发布时间】:2023-03-26 23:07:02
【问题描述】:
我在Windows下用C/C++/OpenGL/GLUT写了一个程序。我想在我的程序中添加一个图标。我使用 MinGW 和命令提示符来编译我唯一的一个 .cpp 文件。我给自己写了一些 .bat 文件,我可以将其编译为调试模式、发布模式等。
我想在我的程序中添加一个图标。所以,我制作了一个新的 compile bat,如下所示:
windres resource.rc object.o
set PATH=%PATH%;c:\mingw\bin
g++ program.cpp object.o >>>some other settings<<<
我有一个 .ico 文件和一个“资源脚本”语言的资源文件。资源文件如下所示:
#ifndef _resource_rc
#define _resource_rc
MAINICON ICON "icons\\icon1.ico"
#endif
现在,问题是:我编译了这些东西,我得到了一个 release .exe,如果我在文件处理程序中查看它,我可以看到 .exe 文件附近的图标,如果我运行它,那里是角落里的一个图标。但是,我的程序以控制台模式菜单开始。如果你在菜单中移动,并选择一个给定的菜单点,之后,你可以启动一个图形窗口,它是用 OpenGL / GLUT 编写的。问题是,控制台窗口有图标,但 OpenGL / GLUT 窗口没有。它有一个基本的 .exe 图标(蓝色边框,内部为白色矩形),而不是我的特定图标。这不好:-(
如何解决 OpenGL / GLUT 窗口有我的图标,而不是默认图标?
感谢您的回答,对不起,因为我的语法:-)
【问题讨论】:
-
@jamesdlin 不,那个是DLL,你必须调用winapi,这个是可执行文件,可以通过设置GLUT_ICON或0x1000,0x1001,windows方式简单地完成,并且两者都无需调用winapi手动更改图标,这是由链接器完成的。