تحميل الرموز من shell32.dll: Win32 مقبض غير صالح أو هو نوع خاطئ

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

  •  09-09-2019
  •  | 
  •  

سؤال

أحصل على بعض الرموز من 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) ولكن عندما أحاول والحصول على الرموز عند الفهرس (71، 73، 127، إلخ.) أحصل على الاستثناء التالي: مقبض Win32 الذي تم تمريره إلى أيقونة غير صالح أو هو نوع خاطئ

كنت أتساءل ما إذا كان أي شخص يعرف لماذا كان هذا يحدث؟ ولماذا يمكن الوصول إلى بعض الرموز والبعض الآخر لا يبدو.

شكرا

هل كانت مفيدة؟

المحلول

لماذا يمكن الوصول إلى بعض الرموز والبعض الآخر لا يبدو.

لأن الرموز ليست جزءا من العقد العام لشركة Shell32.dll.

يجب أن لا تعتمد على رموز تحميل من shell32.dll على أي حال. يشرح ريموند تشن لماذا، على الرغم من أنني لا أستطيع العثور على المقال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top