如下面代码所示:
UINT nRet1 = PrivateExtractIcons((strExe), nIconIndex, 16, 16, &hiconSmall, &nID, 1, LR_DEFAULTCOLOR);
我已经设置了nIcons参数为1,为什么得到的icon数却是多个?

解决方案 »

  1.   

    更正一下:UINT nRet1 = PrivateExtractIcons((strExe), 0, 16, 16, &hiconSmall, &nID, 1, LR_DEFAULTCOLOR);
      

  2.   

    这个函数抽取的是一个资源ID的ICON,也就是说把整个一个.ICO文件从exe或者dll中抽取出来。
    比如一个toolbar的icon图标,如果它正好是第一个那么它的返回的phicon将是这个ico的图标资源是一个整体,不知道你是想要做什么。
    如果是抽取一个icon图标上的某个位置对应的图标,可以用ExtractIcon, ExtractIconEx
      

  3.   

    谢谢2楼的回答,不过还是不明白参数nIcons的意义
      

  4.   

    nIcons表示你要取几个ICON类型的资源图标,和phicon这个是对应的
    如果你要取两个,那么nIcons = 2; phicon = new HICON[nIcons];类似数组保存你需要的两个图标的地址空间