Thi thoảng trong khi sử dụng máy tính, bạn lại nhận được một thông báo lỗi có nội dung là Windows không thể tìm thấy một tập tin DLL xác định, và thật là khủng khiếp nếu bạn có ý định tự mò mẫm và tải về các file DLL bị thiếu từ một trong nhiều trang web DLL trên mạng. Dưới đây là lý do tại sao bạn không nên làm như vậy.
File DLL là gì?
Trước khi bắt đầu tìm hiểu lý do tại sao bạn không nên tự mò mẫm tải về các file Thư viện liên kết động (Dynamic Link Library - DLL) từ Internet, trước hết hãy cùng làm rõ xem các file DLL này là gì. Về cơ bản, mỗi file DLL là một thư viện chứa một bộ mã và dữ liệu để thực hiện một tác vụ cụ thể nào đó trong Windows. Sau đó, khi các ứng dụng cần thực hiện tác vụ đó, nó sẽ sử dụng tới các file DLL chứa bộ mã và dữ liệu tương ứng. Các file DLL về bản chất rất giống với các file thực thi (có đuôi .EXE), ngoại trừ các file DLL không 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 chuột vào một file DLL để chạy nó giống như cách bạn làm đối với một file EXE. Thay vào đó, các file DLL được thiết kế để được chạy bởi các ứng dụng khác. Trong thực tế, chúng được thiết kế để có thể được sử dụng bởi nhiều ứng dụng cùng một lúc. Phần “liên kết” của tên DLL cũng gợi ý một khía cạnh quan trọng khác. Nhiều file DLL có thể được liên kết cùng lúc với nhau để khi một file DLL được sử dụng, một số file DLL khác liên quan cũng được “triệu tập đến” cùng một lúc.
Chính Windows cũng sử dụng một cách linh hoạt và thường xuyên các file DLL, chúng ta có thể để ý được điều này thông qua thư mục C:\Windows\System32. Có một ví dụ về việc sử dụng các file DLL của Windows, bạn hãy chú ý đến file hệ thống Windows “comdlg32.dll”. File này, còn có tên gọi khác đó là Thư viện Hộp thoại Chung (Common Dialog Box Library), trong đó có chứa mã và dữ liệu để xây dựng nhiều hộp thoại chung bạn có thể nhìn thấy trong Windows, đơn cử như hộp thoại xuất hiện khi bạn tiến hành mở tệp, in tài liệu, v.v. Các hướng dẫn trong DLL này giúp Windows xử lý mọi tác vụ từ việc nhận và giải thích các thông điệp đến người dùng (thông qua các hộp thoại) đến quản lý cách các hộp thoại trông như thế nào trên màn hình của bạn. Rõ ràng là nhiều ứng dụng có thể sử dụng các file DLL này cùng một lúc, nếu không bạn sẽ không thể mở được các hộp thoại (giống như bên dưới) trong nhiều ứng dụng cùng một lúc.
Các file DLL cho phép các mã được mô đun hóa và tái sử dụng nhiều lần, điều này có nghĩa là các nhà phát triển sẽ không phải mất thời gian viết mã từ đầu để thực hiện các chức năng cho dù là bình thường hoặc phổ biến nữa. Và mặc dù các nhà phát triển sẽ tạo ra các file DLL riêng để cài đặt với các ứng dụng của họ, phần lớn các file DLL được sử dụng bởi các ứng dụng thực sự đi kèm với Windows hoặc với các gói bổ sung, như Microsoft .NET Framework hoặc Microsoft C ++ Redistributables. Một ưu điểm lớn khác của việc các mô đun được mã hóa theo cách này đó là các bản cập nhật sẽ dễ dàng được áp dụng cho từng file DLL hơn là toàn bộ ứng dụng, đặc biệt là khi các file DLL đó không được tạo ra bởi nhà phát triển của ứng dụng. Ví dụ, khi Microsoft tiến hành cập nhật một số file DLL trong .NET Framework của nó, tất cả các ứng dụng cũng sử dụng các file DLL đó ngay lập tức có thể tận dụng lợi thế của các tính năng hoặc bảo mật được Microsoft cập nhật.
Các file DLL mà bạn tải xuống có thể đã lỗi thời
Một trong những vấn đề phổ biến nhất mà chúng ta thường gặp phải với các file DLL đã tải xuống là có thể chúng đã lỗi thời. Có rât nhiều trong số các trang web download DLL chỉ tải lên các file DLL này từ nguồn của riêng họ, hoặc từ người dùng của họ, hoặc từ các máy tính. Có thể bạn đã gặp rắc rối rồi, bởi hầu hết các trang web này chỉ muốn kiếm lưu lượng truy cập của bạn mà thôi và sau khi các file DLL được tải lên, người ta sẽ ngó lơ đi ngay lập tức, dẫn đến việc hiếm khi các file được cập nhật thường xuyên và đầy đủ. Thêm vào đó, các nhà cung cấp thường không phát hành các file DLL cập nhật cho công chúng dưới dạng các file riêng lẻ và bạn có thể thấy rằng ngay cả các trang web đã cố gắng cập nhật cho kho DLL của họ cũng không mấy hiệu quả.
Ngoài ra còn có một vấn đề nữa đó là các file DLL thường được tích hợp vào các gói cụ thể. Một bản cập nhật cho một file DLL trong một gói thường đi kèm với các bản cập nhật cho các file DLL khác có liên quan trong cùng một gói đó, có nghĩa là ngay cả trong trường hợp bạn không nhận được một file DLL được cập nhật đầy đủ thì các file có liên quan cũng chưa chắc đã được cập nhật.
Các file DLL mà bạn tải xuống có thể bị nhiễm mã độc
Mặc dù ít phổ biến hơn, nhưng có một vấn đề tồi tệ khác có thể xảy ra đó là các file DLL mà bạn tải xuống từ các nguồn khác ngoài các nhà cung cấp đôi khi có thể được “đính kèm” với virus hoặc các phần mềm độc hại khác, và chúng hoàn toàn có thể dễ dàng lây nhiễm sang PC của bạn. Điều này đặc biệt dễ xảy ra đối với các trang web không chặt chẽ trong việc kiểm soát nguồn gốc các file DLL của họ. Và như đã nói ở trên, vì lợi nhuận các trang web này sẽ không dại gì mà cảnh báo cho bạn biết mức độ an toàn về nguồn gốc mập mờ của các file trên trang của họ. Đáng lo hơn đó là nếu bạn tải xuống một file DLL bị nhiễm virus hoặc mã độc, nguy cơ hệ thống của bạn sẽ bị thiệt hại gần như là 100% bởi bản chất của các file DLL là chúng cho phép truy cập vào file sâu hơn so với các file thông thường khác.
Tin tốt ở đây là các ứng dụng diệt virus thời gian thực tốt thường có khả năng phát hiện ra các file DLL bị nhiễm độc này trước khi chúng thực sự được lưu vào hệ thống của bạn và kịp thời ngăn chặn trước chúng kịp gây ra bất cứ thiệt hại nào cho hệ thống của bạn.Tuy nhiên, bạn vẫn phải nhớ rằng ngay cả một chương trình diệt virus tuyệt vời cũng chưa chắc đã có thể cung cấp cho bạn một sự bảo vệ hoàn hảo. Nếu bạn có thói quen tải xuống các file nhập nhằng về nguồn gốc, đi đêm nhiều có ngày gặp ma, việc hệ thống của bạn bị nhiễm độc là điều hoàn toàn có thể xảy ra. Vậy nên tốt nhất là nên tránh các trang web download DLL kiểu này.
Các file DLL này chưa chắc đã giải quyết được các vấn đề của bạn
Mặc dù có thể chỉ có một tệp DLL duy nhất trên PC của bạn bị hỏng hoặc bị xóa, nhiều khả năng các tệp DLL hoặc tệp ứng dụng có liên quan khác cũng có thể bị hỏng hoặc bị thiếu. Lý do bạn gặp phải các lỗi về một tệp cụ thể cũng là lỗi đầu tiên mà ứng dụng gặp phải trước khi gặp sự cố và bạn chỉ đơn giản là 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 đề là gì.
Tại sao các file DLL có thể bị mất hoặc bị hỏng? Có thể là do một ứng dụng hoặc một cập nhật không chuẩn xác đã cố gắng thay thế các file này và thất bại hoặc các file DLL bị thay thế bởi những phiên bản đã lỗi thời. Nó cũng có thể là một lỗi xuất hiện trong quá trình cài đặt ứng dụng của chính bạn hoặc trong một gói như .NET. Thậm chí có thể bạn đang gặp phải sự cố khác, đơn cử như các vấn đề với ổ đĩa cứng của bạn, điều này ngăn cản việc file được tải về một cách chính xác.
Sửa lỗi DLL như thế nào?
Cách duy nhất để đảm bảo bạn có được một file DLL ổn định, được cập nhật và sạch sẽ đó là tải nó về từ những nguồn chính thống của nhà sản xuất. Thông thường, các nguồn đó sẽ là:
Phương tiện cài đặt Windows (Windows installation media). Bạn không thể chỉ đơn giản là sao chép một tệp 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ử. Bạn có thể sử dụng công cụ Bảo vệ tài nguyên Windows - Windows Resource Protection tool (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 chữa các tệp hệ thống bị hỏng hoặc bị thiếu trong Windows. Bạn cần phải đảm bảo phương tiện cài đặt của mình sẵn sàng khi chạy công cụ Bảo vệ tài nguyên Windows, chỉ trong trường hợp cần phải sao chép một tập tin từ đó.
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 khác cũng cài đặt các file từ các gói này. Bạn có thể nghiên cứu một số bài viết về .NET framework, cũng có một số lời khuyên cho việc tìm kiếm và sửa chữa các vấn đề liên quan.
Các gói Redistributable Microsoft Visual C ++ khác nhau. Tùy thuộc vào ứng dụng bạn sử dụng, có thể có nhiều phiên bản của C ++ Redistributable được cài đặt trên PC của bạn. Tuy đôi khi có thể có nhiều khó khăn trong việc xác định xem cái nào là thủ phạm, nhưng tham khảo thêm một số bài viết về C ++ Redistributables, cũng có một số bước khắc phục sự cố và các liên kết nơi bạn có thể tải xuống các phiên bản cập nhật mới nhất ngay từ Microsoft.
Ứng dụng mà file DLL đi kèm. Nếu file DLL đã được cài đặt cùng với một ứng dụng chứ không phải là một phần của một gói riêng biệt, cách tốt nhất là bạn 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ì phải cài đặt lại hoàn toàn. Một trong hai tùy chọn sẽ được cân nhắc sử dụng, vì sửa chữa thường đi liền với việc tìm kiếm các file bị thiếu trong các thư mục cài đặt.
Nếu đã thử tất cả những phương pháp trên mà vẫn không thành công, bạn có thể liên hệ trực tiếp với nhà cung cấp ứng dụng và yêu cầu họ gửi cho bạn một bản sao của file DLL riêng lẻ mà bạn cần. Tuy nhiên, một số công ty luôn sẵn sàng với yêu cầu này còn số còn lại thì không. Nếu bạn gặp một công ty không sẵn lòng cung cấp các tệp riêng lẻ thì ít nhất họ cũng có thể đưa ra các đề xuất khác để giải quyết vấn đề của bạn.
Chúc các bạn thành công!
Xem thêm: