1

我从 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);

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

我想知道是否有人知道为什么会这样?以及为什么某些图标可以访问而其他图标无法访问。

谢谢

4

1 回答 1

1

为什么有些图标可以访问,而有些图标却不能访问。

因为图标不是 Shell32.dll 的公共合同的一部分。

无论如何,您不应该依赖从 Shell32.dll 加载图标。Raymond Chen 解释了原因,虽然我找不到那篇文章。

于 2009-06-04T08:17:02.577 回答