מהם קבצי DLL ולמה חסר אחד מהמחשב שלי?

כשאתה מקבל שגיאה שאומרת ש- Windows לא הצליח למצוא קובץ DLL מסוים, זה יכול להיות מפתה מאוד להוריד את הקובץ מאחד מאתרי ה- DLL הרבים שיש. זו הסיבה שלא כדאי לך.

מהם קבצי DLL?

קשורים: מהו rundll32.exe ומדוע הוא פועל?

לפני שנתחיל מדוע לא כדאי להוריד קבצי Dynamic Link Library (DLL) מהאינטרנט, ראשית נסתכל על קבצי DLL. קובץ DLL הוא ספרייה המכילה קבוצת קוד ונתונים לביצוע פעילות מסוימת ב- Windows. לאחר מכן יישומים יכולים לקרוא לקבצי ה- DLL הללו כאשר הם זקוקים לפעילות זו. קבצי DLL דומים מאוד לקבצי הפעלה (EXE), אלא שלא ניתן לבצע קבצי DLL באופן ישיר ב- Windows. במילים אחרות, אינך יכול ללחוץ פעמיים על קובץ DLL כדי להריצו באותו אופן שבו היית עושה קובץ EXE. במקום זאת, קבצי DLL נועדו להיקרא על ידי יישומים אחרים. למעשה, הם נועדו להיקרא על ידי מספר אפליקציות בו זמנית. החלק "קישור" בשם ה- DLL מציע גם היבט חשוב נוסף. ניתן לקשר מספר רב של קבצי DLL, כך שכאשר קוראים ל- DLL אחד,מספר קבצי DLL אחרים נקראים גם במקביל.

Windows עצמה עושה שימוש נרחב בקבצי DLL, כפי שסיור C:\Windows\System32בתיקייה יכול לומר לך. כדוגמה למה שאנחנו מדברים, בואו ניקח בחשבון את קובץ המערכת של Windows "comdlg32.dll." קובץ זה, הידוע גם בשם ספריית תיבות הדו-שיח המשותפת, מכיל קוד ונתונים לבניית רבות מתיבות הדו-שיח הנפוצות שאתה רואה ב- Windows - דיאלוגים לדברים כמו פתיחת קבצים, הדפסת מסמכים וכן הלאה. ההוראות ב- DLL זה מטפלות בכל דבר, החל בקבלה ופרשנות של הודעות המיועדות לתיבת הדו-שיח ועד לציון מראה תיבת הדו-שיח על גבי המסך. ברור שאפליקציות מרובות יכולות להתקשר ל- DLL זה בו זמנית, אחרת לא תוכל לפתוח תיבת דו-שיח (כמו זו שלמטה) ביותר מאפליקציה אחת בכל פעם.

קבצי DLL מאפשרים לבצע שימוש במודולריציה ובשימוש חוזר בה, מה שאומר שמפתחים לא צריכים להשקיע זמן בכתיבת קוד מאפס כדי לבצע פונקציות ארציות או נפוצות. ולמרות שמפתחים ייצרו קבצי DLL משלהם להתקנה עם האפליקציות שלהם, הרוב המכריע של קבצי ה- DLL שנקראו על ידי אפליקציות אוספים למעשה עם Windows או עם חבילות נוספות, כמו Microsoft .NET Framework או Microsoft C ++ Redistributables. היתרון הגדול הנוסף של מודולציה של קוד בדרך זו הוא שקל יותר להחיל עדכונים על כל DLL ולא על אפליקציה שלמה - במיוחד כאשר קבצי ה- DLL האלה לא הגיעו ממפתח האפליקציה. לדוגמא, כאשר מיקרוסופט מעדכנת קבצי DLL מסוימים במסגרת .NET Framework שלה, כל האפליקציות המשתמשות בקבצי ה- DLL הללו יכולות לנצל באופן מיידי את האבטחה או הפונקציונליות המעודכנים.

קשורים: מהי Microsoft .NET Framework ומדוע היא מותקנת במחשב שלי?

קבצי DLL שהורדו עשויים להיות מיושנים

אז, עם קצת הבנה של קבצי DLL שמתחת לחגורה שלנו, מדוע לא להוריד אותם מהאינטרנט כאשר אחד מהם חסר במערכת שלך?

הבעיה הנפוצה ביותר שתיתקל בה עם קבצי DLL שהורדו היא שהם מיושנים. רבים מאתרי ה- DLL שם מקבלים את קובצי ה- DLL שלהם רק על ידי העלאתם ממחשבים משלהם - או ממשתמשיהם. אתה בטח כבר יכול לראות את הבעיה. רוב האתרים האלה פשוט רוצים את התנועה שלך, וברגע שמעלה קובץ DLL אין להם תמריץ מועט להבטיח שהקובץ יעודכן. הוסף לכך שספקים בדרך כלל לא משחררים קבצי DLL מעודכנים לציבור כקבצים בודדים, ותוכל לראות שגם אתרים  שמנסים לעדכן קבצים לא צפויים להצליח מאוד.

קיימת גם הבעיה הנוספת כי קבצי DLL משולבים בדרך כלל בחבילות. עדכון ל- DLL אחד בחבילה מלווה לעיתים קרובות בעדכונים לקבצי DLL אחרים הקשורים באותה חבילה, כלומר גם במקרה הלא סביר שתקבל קובץ DLL מעודכן, לא תקבל קבצים קשורים שיש להם גם עודכן.

ניתן להדביק קבצי DLL שהורדו

אף על פי שהיא פחות שכיחה, בעיה שעלולה להיות הרבה יותר גרועה היא שקובצי DLL שאתה מוריד ממקורות שאינם מהספק לפעמים יכולים להיות טעונים בווירוסים או תוכנות זדוניות אחרות העלולות להדביק את המחשב האישי שלך. זה נכון במיוחד באתרים שאינם מקפידים מדי על היכן הם משיגים את הקבצים שלהם. וזה לא כמו שאתרים אלה יעשו מגדרם כדי לספר לך על המקורות המסוכנים שלהם. החלק המפחיד באמת הוא שאם אתה מוריד קובץ DLL נגוע, אתה מסתכן - מעצם טבעם של קבצי DLL - לתת לקובץ גישה עמוקה יותר מכפי שקובץ נגוע רגיל עשוי לקבל.

קשורים: מהו האנטי-וירוס הטוב ביותר עבור Windows 10? (האם Windows Defender מספיק טוב?)

החדשות הטובות כאן הן שאפליקציית אנטי-וירוס טובה בזמן אמת יכולה בדרך כלל לזהות קבצי DLL נגועים אלה לפני שהם נשמרים בפועל במערכת שלך ולמנוע מהם נזק. ובכל זאת, עליכם לזכור שאפילו תוכנית אנטי-וירוס נהדרת עשויה שלא לספק לכם הגנה מושלמת. אם אתה נוהג להוריד קבצים מסוכנים, סביר להניח שזה יתעדכן איתך בשלב מסוים. עדיף פשוט להימנע מאתרי DLL אלה.

הם ככל הנראה לא יפתרו את הבעיה שלך

אמנם יתכן שרק קובץ DLL יחיד במחשב שלך נפגם או נמחק, אך סביר יותר כי קבצי DLL אחרים או קבצי אפליקציות קשורים גם הם פגומים או חסרים. הסיבה שאתה מקבל שגיאה בקובץ מסוים אחד היא שזו השגיאה הראשונה בה אפליקציה נתקלה לפני שהתרסקה ופשוט לא מקבלים הודעה על השאר. זה יכול להיות נכון לא משנה הגורם לבעיה.

קשורים: הסקטורים הרעים הוסברו: מדוע כוננים קשיחים מקבלים מגזרים גרועים ומה אתה יכול לעשות בנידון

מדוע קובצי DLL עלולים להיעדר או לפגום? יכול להיות שאפליקציה או עדכון שגוי אחר ניסו להחליף את הקובץ ונכשלו, או החליפו אותו בעותק לא מעודכן. זו עשויה להיות תקלה בהתקנת האפליקציה הראשית שלך או בחבילה כמו .NET. יתכן אפילו שיש לך בעיה אחרת - כמו מגזרים גרועים בדיסק הקשיח - שמונעים את טעינת הקובץ כהלכה.

כיצד אוכל לתקן את שגיאת ה- DLL שלי?

הדרך היחידה להבטיח שתקבל קובץ DLL יציב, מעודכן ונקי היא להעביר אותו דרך המקור שממנו מקורו. בדרך כלל, מקור זה יהיה:

קשורים: כיצד לסרוק (ולתקן) קבצי מערכת פגומים ב- Windows

  • אמצעי ההתקנה של Windows שלך . אין זה סביר שתצליח להעתיק פשוט קובץ DLL ממדיה ההתקנה שלך, אך יש לך אפשרות מהירה לנסות לפני שתעשה משהו כה דרסטי כמו להכניס מחדש את Windows. אתה יכול להשתמש בכלי הגנת המשאבים של Windows (המכונה לעתים קרובות בודק קבצי המערכת, או SFC), אשר יסרוק ויתקן קבצי מערכת פגומים או חסרים ב- Windows. אתה צריך שיהיה לך אמצעי ההתקנה שלך בהישג יד בעת הפעלת הכלי, למקרה שיהיה צורך להעתיק משם קובץ. (אם אין לך דיסק התקנה, תוכל להוריד אותו כאן.)
  • חבילות Microsoft .NET Framework . מספר גרסאות של .NET מותקנות אוטומטית יחד עם Windows, ויישומים רבים מתקינים גם קבצים מחבילות אלה. אתה יכול לקרוא את המאמר שלנו על .NET Framework, שיש בו גם כמה עצות לאיתור ותיקון בעיות קשורות.
  • חבילות שונות של Microsoft Visual C ++ להפצה מחדש . תלוי באפליקציות בהן אתה משתמש, ייתכן שמותקנות במחשב שלך גרסאות מרובות של חלוקת ה- C ++ מחדש. לפעמים זה יכול להיות קשה לצמצם את מי שהוא העבריין, אבל מקום טוב להתחיל בו הוא המאמר שלנו על C ++ הפצה מחדש, אשר כולל גם כמה שלבים לפתרון בעיות וקישורים שבהם אתה יכול להוריד את הגרסאות המעודכנות ביותר ישירות ממיקרוסופט.
  • האפליקציה שאיתה הגיע ה- DLL . אם ה- DLL הותקן יחד עם אפליקציה במקום להיות חלק מחבילה נפרדת, הפתרון הטוב ביותר שלך הוא רק להתקין מחדש את האפליקציה. חלק מהאפליקציות מאפשרות לבצע תיקון במקום התקנה מחדש מלאה. אחת מהאפשרויות צריכה לעבוד, מכיוון שתיקון מחפש בדרך כלל קבצים חסרים בתיקיות ההתקנה.

אם כל זה נכשל, ייתכן שתוכל ליצור קשר עם ספק האפליקציה ולבקש עותק של קובץ DLL בודד. חברות מסוימות פתוחות לבקשה זו; חלקם לא. אם אתה נתקל בחברה שלא תספק קבצים בודדים, הם לפחות יוכלו להציע הצעות אחרות לפתרון הבעיה שלך.