代码之家  ›  专栏  ›  技术社区  ›  Lloyd Powell binku

从shell32.dll加载图标:win32句柄无效或类型错误

  •  1
  • Lloyd Powell binku  · 技术社区  · 16 年前

    我正在从shell32.dll获取一些图标。尽管有些图标似乎不可用,但我不明白为什么。

    我通过调用以下命令加载库来获取图标:

    [DllImport("kernel32.dll")]
    static extern IntPtr LoadLibrary(string Library);
    

    然后通过调用以下命令获取图标:

        [DllImport("User32.dll")]
    public static extern IntPtr LoadImage(IntPtr ptr, int intId, uint intType, int iconWidth,  int iconHeight, int loadIcon);
    

    我发送我正在获取的图标的图标索引,这对ICPON(如打开文件夹图标(索引5)和登录图标(索引45)很好,但当我尝试在索引(71、73、127等)获取图标时,我得到以下异常: 传递给图标的Win32句柄无效或类型错误

    我想知道是否有人知道这是为什么?为什么有些图标是可访问的,而另一些则不显示。

    谢谢

    1 回复  |  直到 16 年前
        1
  •  1
  •   OregonGhost    16 年前

    为什么有些图标是可访问的,而另一些则不显示。

    因为图标不是shell32.dll公共契约的一部分。

    无论如何,您不应该依赖于从shell32.dll加载图标。陈瑞蒙解释了原因,尽管我找不到这篇文章。

    推荐文章