如何在SDL 2/C++中为.exe给予图标?

ecbunoof  于 2023-08-09  发布在  其他
关注(0)|答案(1)|浏览(135)

问题:

当我使用SDL2函数 SDL_SetWindowIcon() 时,图标只在窗口中设置,而不在.exe文件中,这意味着当将其固定在任务栏中时,我会看到this icon

尝试内容:

SDL2函数

SDL_Surface *iconSurface = IMG_Load("./src/Assets/img/Logo/icon.ico");
SDL_SetWindowIcon(window, iconSurface);
SDL_FreeSurface(iconSurface);

字符串

.rc文件

MAIN ICON "File"

重要说明:

Makefile内容:

all:
    cls
    g++ -I src/include -L src/lib -o TKM main.cpp src/include/manmade/Class/* src/include/manmade/Components/* src/include/manmade/Part/* -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf
    ./TKM

编码环境:

OS : Windows
Text Editor : VScode 
Project build with a Makefile

0vvn1miw

0vvn1miw1#

积分:

这是 @HolyBlackCat 你在评论中回答这个问题。我只是把它放在答案部分更详细。
我添加了一些视频和网站来获得C++和SDL 2的知识。

回答:

步骤1.创建.rc文件。
步骤2.在.rc文件中写入这行代码:

MAIN ICON "./thePath/of/yourImage.ico"

字符串
步骤3.在终端中启动此命令:

windres -i yourRCFileName.rc -o yourRCFileName.o


步骤4.通过将.o文件的名称放在main.cpp之后,与.o文件和Makefile建立链接,如下所示:

all:
    cls
    g++ -I src/include -L src/lib -o test main.cpp yourRCFileName.o -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf
    ./test

重要说明:

图像必须是.ico,否则您将收到以下错误消息:

C:\mingw64\bin\windres.exe: icon file `./src/Assets/img/apple.png' does not contain icon data

温馨提示:

您可以使用像https://icoconvert.com/这样的网站来转换您的图像,但它们只接受以下图像:

PNG, JPG or BMP image( maximum size: 50 MB )

相关问题