从Shell32.dll中加载图标:Win32的句柄无效,或者是错误的类型

StackOverflow https://stackoverflow.com/questions/949196

  •  09-09-2019
  •  | 
  •  

我正在从Shell32.dll中的一些图标。 Althought一些图标不显示为可用的,我不明白为什么。

我通过调用获取图标通过加载库:

[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);

我在我得到的图标,它工作正常icpons图标索引发送诸如打开文件夹图标(索引5)和登录图标(指数45),但是当我尝试并获得指数的图标(71 ,73,127,等等,等等),我得到以下异常: 传递给图标的Win32句柄无效或者是错误的类型

我想知道是否有人知道为什么这发生?为什么一些图标都可以访问和其他人似乎没有。

由于

有帮助吗?

解决方案

  

为什么有些图标都可以访问和其他人似乎没有。

由于图标不是Shell32.dll中的公共合同的一部分。

您不应该依赖于从Shell32.dll中加载图标反正。雷蒙德陈解释为什么,但我无法找到的文章。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top