תוכן עניינים:
הגדרה - מה המשמעות של תכונה DllImport?
תכונת DllImport היא תג הצהרה המשמש ב- C # לסימון שיטת מחלקה כהגדרתה בספריה חיצונית של קישור דינמי (DLL) ולא בכל הרכבה .NET.
תכונה DllImport משמשת בזמן ריצה כדי לקרוא לפונקציה המיוצאת ב- DLL חיצוני המיושמת עם קוד לא מנוהל שמבוצע מחוץ לשליטת זמן ריצה של שפה נפוצה (CLR). הוא משמש גם לציון מידע אחר הדרוש בעת קריאה לפונקציה כגון ועידת שיחות, סוג המרה של פרמטרים המועברים בין קוד מנוהל ללא מנוהל וכו '. לפיכך, הוא משמש לתפקוד פעולה עם קוד ברכיבים לא מנוהלים ומורשת השוכנים ב- Windows קבצי DLL ונכתבים ב- C או C ++.
DllImport מועיל במצבים בהם ניתן להרחיב את הפונקציונליות של אפליקציה מנוהלת, שהקוד שלה מבוצע על ידי CLR, על ידי גישה ושימוש חוזר בפונקציונליות של ממשק תכנות היישומים Win32 (API) וקודים אחרים מוגדרים על ידי המשתמש שאינם מנוהלים ומיושמים. ב- DLL. זה יכול לחסוך מאמץ פיתוח ולעשות שימוש בקוד חזק ויציב היטב, מבלי להמציא את הגלגל מחדש ביישום מנוהל. בדרך כלל זה נחוץ תוך כדי שימוש ב- DLLs שלא ניתן לכתוב מחדש אך יש להם אפשרות לשנות.
Techopedia מסביר את תכונת DllImport
התכונה DllImport היא הצהרת הצהרה לפונקציה המיוצאת שתיקרא מהיישום המנוהל. זה לא יכול לשמש לפונקציית חברים, הדורשת מופע של כיתה. זה מוגדר בזמן התכנון בתוך סוגריים מרובעים לפני ההכרזה על השיטה שלשמה היא מיושמת. יש צורך להשתמש במחרוזת "extern" לפני הכרזת הפונקציה.
לדוגמה, ניתן להשתמש בתכונה DllImport ביישום Windows Forms, שהוא יישום מנוהל כדי להפעיל שיטה של רכיב מודל של אובייקט רכיב (שהקוד שלו לא מנוהל) לביצוע כמה חישובים.
זה נועד לייבא את קבצי ה- DLL המסורתיים המייצאים את הפונקציות שלהם באמצעות מנגנון הייצוא המקורי של Windows. זה לא מיועד לשימוש בקוד בהרכבה מנוהלת (כ- DLL), אליו ניתן להפנות ישירות בפרויקט היישום המנוהל.
התכונה DllImport משתמשת ב- InteropServices של ה- CLR שמבצע את השיחה מקוד מנוהל לקוד לא מנוהל. זה גם מודיע למהדר על מיקום יישום הפונקציה המשמשת. כאשר נקראת פונקצית העטיפה הלא מנוהלת עם תכונה זו בקוד מנוהל, ה- CLR מאתר ומטען את ה- DLL הדרוש. זה מרשלים (ממיר את הפרמטרים לפי המפרט) ומחזיר את הקוד הלא מנוהל לאחר הביצוע, יחד עם המרה נכונה של הפרמטרים.
בעת השימוש במאפיין DllImport, יש להקפיד להשתמש בשם הנכון של ה- DLL והפונקציה המיוצאת מכיוון שקלות הקלדה עלולות להופיע במקומות שבהם לא ניתן לאתר אותם בקלות.
