举例说吧:
要把 test.exe 的图标利用 UpdateResource 等函数替换成 doc 文档默认图标,
电脑上没装 MSOffice,只装了 WPS2007 个人版,
首先通过读取注册表 HKEY_CLASSES_ROOT\.doc,键值为 WPS.Doc.6,
然后再读取 HKEY_CLASSES_ROOT\WPS.Doc.6\DefaultIcon,
键值为 d:\WPS\office6\wps.exe,3,
我是这样的理解的:doc 文档的默认图标是采用 wps.exe 的第3个图标资源。
随即通过 UpdateResource 等函数替换 test.exe 图标,
结果如下图,明显的两个图标不一样啊!
请指教,问题出在哪里了?

解决方案 »

  1.   

    exe的默认图标应该是第一个图标
      

  2.   

    这个数字就是在编写程序时所赋给这个图标的资源ID,不是资源序号!
    你可以使用 Visual Studio 以资源方式打开 exe 文件,就能看见资源ID了。
      

  3.   

    今早我也分析了一下。
    用 VC 以资源方式打开 exe 文件,
    这里的 3,表示的是 Icon 资源中排名第 3+1 的那个图标资源,
    再用 PE 工具分析,这个图标是在 RT_GROUP_ICON 组中,
    对应的 ID 就是排名第 3+1 的那个图标资源的 ID。