今天比较蛋疼,研究了一下以前某软件在Vista下部分icl使用不能的问题,想起这里还有个窝,就记录一下吧。
首先,得知icl的格式就是dll,同样也分为16bit的NE和32bit的PE两种,那么大概就可以猜到是Vista抛弃了16bit。
MSDN论坛上有人出现过类似的问题 ,虽然最后那人说新版Vista修好了,但是我试了一下,Vista的快捷方式图标依旧是不支持16bit的。
为了更加确定,在那个软件的源码里找到了失效的函数ExtractIcon,然后MSDN告诉我这个函数确实是不支持16bit的(虽然我也不喜欢Not Supported的说法 )。
最后问题搞清楚了,还要解决它。虽然用IconWorkshop是可以转换成32bit的,但保存出来体积增加了近一倍,天知道它在里面加了什么。最终找了一款比较专业的GConvert。另外还要说,ACDSee居然只认16bit的,真是不专业啊。