Laden Symbole von Shell32.dll: Win32 Handle ist nicht gültig oder ist die falsche Art

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

  •  09-09-2019
  •  | 
  •  

Frage

Ich erhalte einige Icons aus der Shell32.dll. Althought einige der Symbole erscheinen nicht zur Verfügung stehen, und ich kann nicht verstehen, warum.

Ich bin das Symbol immer durch die Bibliothek geladen durch den Aufruf:

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

und dann immer das Symbol durch den Aufruf:

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

ich in dem Icon-Index des Symbols senden, die ich erhalte, die für icpons wie das Open Folder Icon (Index 5) und LogIn-Symbol (Index 45) funktioniert gut, aber wenn ich versuche und Symbole Index (71 , 73, 127, etc. etc.) ich erhalte die folgende Ausnahme: Win32 Griff, der an Icon übergeben wurde, ist ungültig oder die falsche Art

Ich habe mich gefragt, ob jemand wüsste, warum dies geschieht? und warum einige der Symbole zugänglich sind und andere nicht angezeigt.

Danke

War es hilfreich?

Lösung

  

Warum sind einige der Symbole zugänglich und andere scheinen nicht.

Da die Symbole sind nicht Teil des öffentlichen Auftrags von Shell32.dll.

Sie sollten sowieso nicht auf Lade Symbole aus Shell32.dll verlassen. Raymond Chen erklärt, warum, obwohl ich den Artikel nicht finden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top