You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

升级至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/DebugWin32/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

火山引擎 最新活动