升级至C++ Builder 10.2 Tokyo后应用图标不显示问题求助
解决C++ Builder 10.2 Tokyo应用图标消失问题
我之前在使用10.2 Tokyo时也碰到过一模一样的图标问题,折腾了好一阵才找到几个靠谱的解决办法,分享给你:
1. 重新检查并修复图标资源关联
- 右键你的项目,选择Options -> Resource Compiler -> Resources,确认你的图标
.res文件在列表里,路径没有错误。如果找不到,手动添加进去。 - 自动生成的资源文件有时候会抽风,建议手动重建:用IDE自带的Image Editor新建一个图标文件,至少包含16x16、32x32、48x48这几个标准尺寸(哪怕你不是高分辨率屏幕,系统也需要多尺寸适配),保存为
appicon.res。然后在项目的主.cpp文件里替换原来的资源引用,改成#pragma resource "appicon.res"。
2. 彻底清理项目缓存
IDE的临时缓存经常是罪魁祸首:
- 手动删除项目目录下的
*.obj、*.tds、*.exe文件,还有Win32/Debug或Win32/Release文件夹里的所有内容。 - 也可以用IDE自带的清理功能:点击菜单Project -> Clean,然后选择Rebuild All,从头编译整个项目。
3. 修正Manifest文件设置
10.2 Tokyo的默认Manifest偶尔会干扰图标加载:
- 右键项目 -> Options -> Application -> Manifest,选择Custom manifest,然后打开Manifest文件检查,确保
<application>节点里没有错误的icon属性,如果有就删掉它,让系统自动读取资源里的图标。 - 要是不想自定义Manifest,就选Default manifest,并勾选Enable runtime themes,这个选项有时候能间接修复图标加载的问题。
4. 手动设置窗口和任务栏图标
有时候任务栏图标不显示是因为窗口图标没有正确初始化,在主窗口的OnCreate事件里加一段代码手动加载:
void __fastcall TMainForm::FormCreate(TObject *Sender) { // 从资源加载图标,MAINICON是你在.res里定义的图标名称 Application->Icon->LoadFromResourceName((int)HInstance, "MAINICON"); // 也可以直接从文件加载:Application->Icon->LoadFromFile("你的图标路径.ico"); }
5. 避免新建项目后的图标丢失
新建项目图标初始有效后来消失,基本都是缓存或资源文件被IDE意外修改导致的:
- 每次修改图标后,手动保存
.res文件,先Clean项目再编译,别直接点Run。 - 修改完图标后,最好关闭IDE再重新打开编译,有时候IDE的资源编辑器会有更新延迟,导致旧资源被重复编译。
内容的提问来源于stack exchange,提问作者Totte Karlsson




