从Shell32.dll中加载图标:Win32的句柄无效,或者是错误的类型
题
我正在从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中加载图标反正。雷蒙德陈解释为什么,但我无法找到的文章。
不隶属于 StackOverflow