我写了个程序,
采用MFC静态连接,
已经修改了程序的默认图标,编译成。EXE文件后
在WIN98/ME/2000下,在硬盘上显示的都是我自己的图标   没问题
可是在WIN XP下出问题了,
不管怎么搞,都显示是MFC的一个通用图标,
谁知道如何解决?

解决方案 »

  1.   

    都修改了
    默认的那个MFC图标被我删除掉了
    否则不可能在WIN98/2000正常
    XP不正常
    问题是XP是怎么显示出我的程序里根本不存在的MFC图标的?
      

  2.   

    我试了一下:只要把工程目录下res文件夹下的“你的工程名.ico”这个图标文件替换成你想要的图标文件就行了,非常简单啊,不知道是不是理解错你问的意思了?
      

  3.   


    只要把工程目录下res文件夹下的“你的工程名.ico”这个图标文件替换成你想要的图标文件这个早已经被我改掉了,
    很可能是少改了 16*16 的那个
    这个我没指定,
    我是个对话框程序 OninitDialog( )
    用的是CXXAPP* app->LoadIcon(ID_MYMAINICON)这样的方式装入的也就水说,WINXP中显示出来的那个ICON,事实上在我的工程文件中根本不存在,
    在WIN2000或WIN9X 都是在磁盘上显示(ID_MYMAINICON)
    就是在WINXP中,出现该死的MFC通用图标而不是我已经修改的图标,
    而且那个MFC图标早就被我彻底修改或者删除掉了,整个工程中根本不存在
    奇怪啊
      

  4.   

    我REBUILD ALL 好几次了    注意,我指的是文件在硬盘上显示的ICON
    运行时完全没问题的,而且这个问题在WIN98/2000下没有,只在XP下,磁盘上的文件变成了MFC通用图标
    DEBUG和RELEASE模式都是一样的
    环境是VS2003
    我怀疑MS的VS2003编译器是不是在PEF文件头中插入了什么指示性代码
      

  5.   

    用IconWorkShop做一个WinXp格式的图标加进去不就行了
    WinXP的图标是真彩色的(16.8M-32位)带Alpha通道的
      

  6.   

    你还Load什么Load哟,,把res下的那个图标替换就行了。。
      

  7.   

    楼上跟我的看法一样,“只要把工程目录下res文件夹下的“你的工程名.ico”这个图标文件替换成你想要的图标文件就行了”,什么16*16,32*32,LoadIcon和ID啊,一概不管,一概不改,只要拿狸猫换掉太子就行了。
    楼主不妨用一个别的工程来做白老鼠试试。
      

  8.   

    我尝试一下,
    问题是我的RES下工程名。ICO那个文件已经被我从工程中删除了,
    不知道是不是默认的关系,
    例如我的工程叫VLINK,
    那么RES应该有个对应的VLINK。ICO
    事实上那个文件一开始就被我从工程里给DELETE掉了,
    不知道是不是这个原因,谢谢
      

  9.   

    事实上那个文件一开始就被我从工程里给DELETE掉了,
    不知道是不是这个原因-----------------------------------------------------------------
    哇,你太粗鲁了^_^试试给工程找个“后妈”来,也放在res目录下,改成原配夫人的名字,再在工程中把它的ID啊什么的参数也改成原先的一样,如果不知道原先是什么样的,就参照刚才那个白老鼠的参数设一下试试。
      

  10.   

    在经过N次的白老鼠实验后,终于搞清楚问题了
    在WIN98/ME/2000环境下,使用VC开发
    修改默认图标后的图案后,在98/ME/2000下的磁盘上确实能显示该图标代表你的程序
    但是,
    千万注意,程序自动生成的主图标,无论如何修改图案,在XP环境下都将被显示成MFC通用图标,
    为什么我还没搞明白,但是事实就是这样
    解决的办法是
    将系统自动生成的图标直接从硬盘上删除掉,用其他的ICON制作软件制作一个你希望的ICON,
    采用相同的名称覆盖,如此才能在XP下硬盘上显示你自己的ICON,否则将显示事实上根本不存在的MFC通用图标,我也搞不清楚XP从哪里弄来的这个根本不存在的通用图标
    但是很奇怪,2000/98下没有任何问题,嘿嘿
    顶上去,过几天结贴,
    谢谢各位的帮助,希望大家不要反同样的错误,以为2000/98下正常,XP下就一样,
    事实是XP是混蛋。