Trang chủ » làm thế nào để » Tệp DLL là gì và tại sao một tệp bị thiếu từ PC của tôi?

    Tệp DLL là gì và tại sao một tệp bị thiếu từ PC của tôi?

    Khi bạn gặp lỗi nói rằng Windows không thể tìm thấy một tệp DLL cụ thể, việc tải xuống tệp từ một trong nhiều trang DLL ngoài đó có thể rất hấp dẫn. Đây là lý do tại sao bạn không nên.

    DLL là gì?

    Trước khi chúng tôi bắt đầu lý do tại sao bạn không nên tải xuống các tệp Thư viện liên kết động (DLL) từ Internet, trước tiên chúng ta hãy xem các tệp DLL là gì. Tệp DLL là một thư viện chứa một bộ mã và dữ liệu để thực hiện một hoạt động cụ thể trong Windows. Sau đó, ứng dụng có thể gọi các tệp DLL đó khi chúng cần hoạt động đó được thực hiện. Các tệp DLL rất giống các tệp thực thi (EXE), ngoại trừ các tệp DLL có thể được thực thi trực tiếp trong Windows. Nói cách khác, bạn không thể bấm đúp vào tệp DLL để chạy nó giống như cách bạn làm với tệp EXE. Thay vào đó, các tập tin DLL được thiết kế để được các ứng dụng khác yêu cầu. Trên thực tế, chúng được thiết kế để được gọi bởi nhiều ứng dụng cùng một lúc. Phần liên kết của một phần của tên DLL cũng gợi ý một khía cạnh quan trọng khác. Nhiều DLL có thể được liên kết với nhau để khi một DLL được gọi, một số DLL khác cũng được gọi cùng lúc.

    Bản thân Windows sử dụng rộng rãi các DLL, như một chuyến tham quan thông qua C: \ Windows \ System32 thư mục có thể cho bạn biết. Để làm ví dụ về những gì chúng ta đang nói, hãy xem xét tệp hệ thống Windows, com comdlg32.dll. Tập tin này, còn được gọi là Thư viện hộp thoại chung, chứa mã và dữ liệu để xây dựng nhiều hộp thoại chung mà bạn thấy trong Hộp thoại Windows cho những thứ như mở tệp, in tài liệu, v.v. Các hướng dẫn trong DLL này xử lý mọi thứ từ nhận và giải thích các thông điệp có nghĩa cho hộp thoại đến chỉ định hộp thoại trông như thế nào trên màn hình của bạn. Rõ ràng, nhiều ứng dụng có thể gọi DLL này cùng một lúc, nếu không, bạn sẽ không thể mở hộp thoại (như ứng dụng bên dưới) trong nhiều ứng dụng cùng một lúc.

    DLL cho phép mã được mô đun hóa và tái sử dụng, điều đó có nghĩa là các nhà phát triển không phải dành thời gian viết mã từ đầu để thực hiện các chức năng thông thường hoặc thông thường. Và mặc dù các nhà phát triển sẽ tạo các DLL riêng để cài đặt ứng dụng của họ, nhưng phần lớn các DLL được gọi bởi các ứng dụng thực sự được gói cùng với Windows hoặc với các gói bổ sung, như Microsoft .NET Framework hoặc Microsoft C ++ Redistributables. Ưu điểm lớn khác của việc mô đun hóa mã theo cách này là các bản cập nhật dễ áp ​​dụng hơn cho mỗi DLL hơn là cho toàn bộ ứng dụng - đặc biệt là khi các DLL đó không đến từ nhà phát triển ứng dụng. Ví dụ: khi Microsoft cập nhật một số DLL nhất định trong .NET Framework, tất cả các ứng dụng sử dụng các DLL đó có thể ngay lập tức tận dụng bảo mật hoặc chức năng được cập nhật.

    DLL đã tải xuống có thể bị lỗi thời

    Vì vậy, với một chút hiểu biết về DLL dưới vành đai của chúng tôi, tại sao không tải chúng xuống từ Internet khi thiếu một cái từ hệ thống của bạn?

    Vấn đề phổ biến nhất bạn sẽ gặp phải với các tệp DLL đã tải xuống là chúng đã lỗi thời. Nhiều trang web DLL ngoài đó có được DLL của họ chỉ bằng cách tải chúng lên từ máy tính của chính họ - hoặc người dùng của họ - máy tính. Bạn có thể thấy vấn đề rồi. Hầu hết các trang web này chỉ muốn lưu lượng truy cập của bạn và một khi DLL được tải lên, họ có rất ít động lực để đảm bảo rằng tệp được cập nhật. Thêm vào đó, các nhà cung cấp thường không phát hành các tệp DLL được cập nhật ra công khai dưới dạng các tệp riêng lẻ và bạn có thể thấy rằng ngay cả các trang web là những người thử để cập nhật các tập tin không có khả năng rất thành công.

    Ngoài ra còn có vấn đề nữa là DLL thường được tích hợp vào các gói. Một bản cập nhật cho một DLL trong một gói thường đi kèm với các bản cập nhật cho các DLL khác có liên quan trong cùng một gói, nghĩa là ngay cả trong trường hợp không chắc bạn có nhận được tệp DLL cập nhật, bạn sẽ không nhận được các tệp có liên quan cũng có đã được cập nhật.

    DLL đã tải xuống có thể bị nhiễm

    Mặc dù ít phổ biến hơn, một vấn đề tiềm ẩn tồi tệ hơn nhiều là các DLL bạn tải xuống từ các nguồn khác ngoài nhà cung cấp đôi khi có thể bị nhiễm vi-rút hoặc phần mềm độc hại khác có thể lây nhiễm PC của bạn. Điều này đặc biệt đúng trên các trang web không quá cẩn thận về nơi họ lấy tệp của mình. Và nó không giống như các trang web sẽ đi theo cách của họ để nói với bạn về các nguồn rủi ro của họ. Phần thực sự đáng sợ là nếu bạn tải xuống tệp DLL bị nhiễm, bạn sẽ gặp rủi ro - bởi bản chất của tệp DLL - cho phép tệp đó truy cập sâu hơn tệp bị nhiễm thông thường có thể nhận được.

    Tin tốt ở đây là một ứng dụng chống vi-rút thời gian thực tốt thường có thể phát hiện các tệp DLL bị nhiễm này trước khi chúng thực sự được lưu vào hệ thống của bạn và ngăn chúng thực hiện bất kỳ thiệt hại nào. Tuy nhiên, bạn phải nhớ rằng ngay cả một chương trình chống vi-rút tuyệt vời có thể không cung cấp cho bạn sự bảo vệ hoàn hảo. Nếu bạn có thói quen tải xuống các tệp rủi ro, có thể bạn sẽ bắt kịp với bạn tại một số điểm. Tốt nhất chỉ nên tránh các trang web DLL này.

    Họ có lẽ sẽ không giải quyết vấn đề của bạn

    Mặc dù có thể chỉ một tệp DLL duy nhất trên PC của bạn bị hỏng hoặc bị xóa, nhưng nhiều khả năng các tệp DLL hoặc tệp ứng dụng liên quan khác cũng bị hỏng hoặc bị thiếu. Lý do bạn gặp lỗi về một tệp cụ thể là vì đó là lỗi đầu tiên mà ứng dụng gặp phải trước khi gặp sự cố và đơn giản là bạn không được thông báo về phần còn lại. Điều này có thể đúng bất kể nguyên nhân của vấn đề.

    Tại sao DLL bị thiếu hoặc hỏng? Có thể là một ứng dụng hoặc cập nhật sai lầm khác đã cố gắng thay thế tệp và không thành công hoặc thay thế nó bằng một bản sao lỗi thời. Nó có thể là một lỗi trong quá trình cài đặt ứng dụng chính của bạn hoặc trong một gói như .NET. Thậm chí có thể bạn đang gặp vấn đề khác - như các thành phần xấu trên đĩa cứng của bạn - điều đó ngăn không cho tệp tải chính xác.

    Làm thế nào tôi có thể sửa lỗi DLL của tôi?

    Cách duy nhất để đảm bảo bạn có được một DLL ổn định, cập nhật và sạch sẽ là lấy nó thông qua nguồn mà nó bắt nguồn. Thông thường, nguồn đó sẽ là:

    • Phương tiện cài đặt Windows của bạn. Bạn sẽ không thể sao chép một tập tin DLL từ phương tiện cài đặt của mình, nhưng bạn có một tùy chọn nhanh để thử trước khi làm điều gì đó quyết liệt như giới thiệu lại Windows. Bạn có thể sử dụng công cụ Windows Resource Protection (thường được gọi là trình kiểm tra tệp hệ thống hoặc SFC), công cụ này sẽ quét và sửa các tệp hệ thống bị hỏng hoặc bị thiếu trong Windows. Bạn nên có phương tiện cài đặt tiện dụng khi chạy công cụ, trong trường hợp nó cần sao chép một tập tin từ đó. (Nếu bạn không có đĩa cài đặt, bạn có thể tải xuống tại đây.)
    • Các gói Microsoft .NET Framework. Một số phiên bản .NET được cài đặt tự động cùng với Windows và nhiều ứng dụng cũng cài đặt các tệp từ các gói đó. Bạn có thể đọc bài viết của chúng tôi về .NET framework, cũng có một số lời khuyên để tìm và sửa chữa các vấn đề liên quan.
    • Các gói có thể phân phối lại của Microsoft Visual C ++. Tùy thuộc vào ứng dụng bạn sử dụng, bạn có thể có nhiều phiên bản C ++ Redistributable được cài đặt trên PC. Đôi khi có thể khó thu hẹp cái nào là thủ phạm, nhưng một nơi tốt để bắt đầu là bài viết của chúng tôi về C ++ Redistributables, cũng có một số bước khắc phục sự cố và liên kết nơi bạn có thể tải xuống các phiên bản cập nhật nhất từ ​​Microsoft.
    • Ứng dụng mà DLL đi kèm. Nếu DLL được cài đặt cùng với một ứng dụng thay vì là một phần của gói riêng biệt, thì cách tốt nhất của bạn chỉ là cài đặt lại ứng dụng. Một số ứng dụng cho phép bạn thực hiện sửa chữa thay vì cài đặt lại đầy đủ. Tùy chọn này sẽ hoạt động, vì việc sửa chữa thường tìm kiếm các tệp bị thiếu trong các thư mục cài đặt.

    Nếu tất cả điều đó không thành công, bạn có thể liên hệ với nhà cung cấp ứng dụng và yêu cầu một bản sao của một tệp DLL riêng lẻ. Một số công ty mở cửa cho yêu cầu này; một số thì không. Nếu bạn gặp một công ty không cung cấp các tệp riêng lẻ, ít nhất họ có thể cung cấp các đề xuất khác để giải quyết vấn đề của bạn.