Cách sửa lỗi Windows Visual C ++ Runtime

Cách sửa lỗi Windows Visual C ++ Runtime

Các thư viện được chia sẻ trong Windows giúp cho việc lập trình hiệu quả hơn rất nhiều cho lập trình viên, những người không cần phải phát minh lại bánh xe mỗi khi anh ta cần thực hiện một tác vụ thông thường. Chúng cũng giúp dễ dàng cắm các lỗ hổng bảo mật trong mã chia sẻ khi chúng được tìm thấy vì nó cần được vá ở ít nơi hơn và không yêu cầu mọi ứng dụng phải được biên dịch lại.





Bất chấp những khía cạnh tích cực này, họ có thể đặt ra các vấn đề của riêng mình khi cố gắng khắc phục nguyên nhân gốc rễ của các thông báo lỗi mà họ có thể tạo ra.





Câu hỏi của độc giả của chúng tôi:

Làm cách nào để khắc phục sự cố Windows Vista 32-bit C: Windows explorer.exe trên Dell Inspiron 530?





Sau khi nhấp vào nút OK trong hộp thoại hiển thị trong ảnh chụp màn hình, màn hình sẽ tối đi và trở lại hoạt động bình thường, nhưng nó sẽ không cho phép tôi truy cập vào ổ C, D và, đôi khi, ổ E khi cố gắng truy cập chúng. từ Máy tính của tôi.

Đang chạy sfc / scannow không tìm thấy bất kỳ lỗi nào. Tôi đã tải xuống các bản cập nhật từ cả trang web của Dell và Microsoft để cố gắng khắc phục sự cố này. Tôi cũng đã cài đặt Microsoft Visual C ++ 2010 Redistributable Package (x86). PC hoàn toàn được cập nhật theo Windows Update.



Bruce's Reply:

Lưu ý: Các cuộc thảo luận về Windows Explorer trong Windows 7 và các phiên bản trước đó cũng áp dụng cho File Explorer trong Windows 8 và các phiên bản mới hơn. Nếu có sự khác biệt đáng chú ý giữa chúng, nó sẽ được nêu rõ ràng.

Windows Shell

Windows Explorer shell và chạy dưới dạng quy trình explorer.exe như được thấy trong Trình quản lý tác vụ hoặc Trình khám phá quy trình của Sysinternals. Giống như nhiều chương trình Windows khác, tất cả các chức năng được cung cấp bởi shell không được kết hợp vào một tệp thực thi duy nhất đó. Có hàng tá tệp EXE và DLL khác được sử dụng để triển khai các trang thuộc tính, trình xử lý thuộc tính, trình xử lý xem trước, menu ngữ cảnh và nhiều phần tử khác mà bạn sử dụng trong Windows Explorer hàng ngày.





Vỏ mở rộng

Phần mở rộng của Shell cho phép người lập trình dễ dàng thêm chức năng vào Windows Explorer bằng cách viết một DLL để thực hiện tác vụ và đăng ký DLL với hệ điều hành, vì vậy Explorer biết nơi tìm mã để hoàn thành tác vụ. Ví dụ, 7-Zip thêm menu phụ vào menu ngữ cảnh tiêu chuẩn, cho phép truy cập nhanh vào các tác vụ xử lý kho lưu trữ, Hard Disk Sentinel thêm lớp phủ biểu tượng vào các biểu tượng ổ đĩa tiêu chuẩn, vì vậy bạn có thể xem nhanh tình trạng ổ đĩa và HashTab thêm một trang thuộc tính mới, để tính toán và hiển thị các hàm băm của tệp đã chọn.

Nhiều phần mở rộng shell này được triển khai dưới dạng máy chủ Mô hình Đối tượng Thành phần (COM) trong quá trình. Điều này có nghĩa là khi một quy trình, trong trường hợp này là Windows Explorer, sử dụng tiện ích mở rộng, nó sẽ không xuất hiện trong Trình quản lý tác vụ hoặc Process Explorer dưới dạng một quy trình đang chạy riêng biệt với mã định danh quy trình (PID) của riêng nó. Thay vào đó, nó đang thực thi bên trong quá trình gọi explorer.exe.





Quy trình một phiên bản mặc định

Windows Explorer được viết để có khả năng chạy như hai tiến trình riêng biệt, nhưng - trong cấu hình mặc định của nó - nó sẽ chỉ chạy một phiên bản duy nhất. Khi nó được thực thi lần đầu tiên như một phần của quá trình khởi động, nó sẽ tạo ra môi trường máy tính để bàn Windows. Việc thực thi lại nó sẽ tạo ra một luồng mới trong quy trình hiện có, luồng này sẽ hiển thị cửa sổ quản lý tệp quen thuộc, thay vì bắt đầu một quy trình mới.

Hành vi này cho phép giảm dung lượng bộ nhớ, nhưng cũng có thể mang lại một chút khó khăn khi khắc phục sự cố. Một lỗi nghiêm trọng hoặc ngoại lệ chưa được khắc phục trong mã đang được thực thi trong quy trình explorer.exe, bao gồm các máy chủ trong quá trình được cung cấp bởi DLL, sẽ khiến toàn bộ môi trường máy tính để bàn hoạt động với nó.

Trong hầu hết các trường hợp, quá trình trên máy tính sẽ tự động được khởi động lại. Nếu nó không khởi động lại, bạn vẫn có thể sử dụng Ctrl-Shift-Esc để hiển thị Trình quản lý tác vụ. Từ đó, đi đến Tệp> Tác vụ mới (Chạy…)> kiểu explorer.exe> ​​OK để khởi động lại quá trình.

Điều này có thể tránh được bằng một thay đổi đơn giản. Mở ra Windows Explorer> Sắp xếp> Tùy chọn thư mục và tìm kiếm trong Vista / 7. Đối với Windows 8 trở lên, hãy mở File Explorer> View> Options> Change folder and search options . Chọn Xem tab và kiểm tra Khởi chạy các cửa sổ thư mục trong một quy trình riêng biệt .

32gb có thể chứa bao nhiêu ảnh

Thay đổi cài đặt này sẽ cô lập quy trình trên màn hình của bạn khỏi tất cả các cửa sổ Windows Explorer khác mà bạn đã mở. Nếu bất kỳ cửa sổ Explorer nào gặp sự cố, màn hình của bạn sẽ không bị tổn hại.

Thư viện thời gian chạy Microsoft Visual C ++ (CRT)

Thư viện thời gian chạy Microsoft Visual C ++ cung cấp các quy trình để lập trình Windows tự động hóa nhiều tác vụ, chẳng hạn như nhập / xuất, thao tác tệp, cấp phát bộ nhớ, lệnh gọi hệ thống và nhiều tác vụ khác.

Mọi cài đặt Windows sẽ có ít nhất hai phiên bản CRT khác nhau được cài đặt. Máy tính Vista SP2 thông qua Windows 10 mới được xây dựng sẽ có cả phiên bản 8.0 và 9.0 (VC 2005 và VC 2008). Khi phần mềm bổ sung được cài đặt, nó cũng có thể bao gồm các phiên bản thời gian chạy mới hơn, tùy thuộc vào phiên bản Visual C ++ nào được sử dụng để tạo chương trình hoặc bất kỳ thành phần nào của nó.

Lỗi thời gian chạy

Khi một đoạn mã gặp phải lỗi hoặc ngoại lệ, lý tưởng nhất là nó sẽ được xử lý càng sớm càng tốt trong quy trình hiện đang thực thi và được sửa chữa hoặc cho phép một lỗi ân hạn. Nếu lỗi không được xử lý cục bộ, nó sẽ được chuyển tới mã được gọi là mã hiện đang thực thi và quá trình tiếp tục cho đến khi xử lý được ngoại lệ. Nếu nó hoàn thành quá trình chạy lên đầu chuỗi và nó vẫn không được xử lý, nó sẽ tạo ra lỗi thời gian chạy như đã thấy ở trên.

Khi người dùng nhấp vào nút OK, quá trình sẽ được kết thúc. Nếu chương trình có một hành vi lỗi đã xác định, chẳng hạn như các dịch vụ quan trọng hoặc trạng thái chạy của nó được theo dõi bởi một quy trình khác, nó có thể được tự động khôi phục lại. Đây là những gì đang xảy ra trong trường hợp này. Màn hình tối đen khi quá trình explorer.exe kết thúc, sau đó màn hình sẽ hoạt động trở lại khi quá trình explorer.exe được khởi động lại.

Mặc dù thông báo lỗi ở trên chỉ rõ rằng nó đến từ quá trình explorer.exe, nhưng nó không có khả năng là sự cố với chính explorer.exe. Nhiều khả năng thủ phạm nằm ở nơi khác, chẳng hạn như tiện ích mở rộng của bên thứ ba đang được Explorer sử dụng.

Những ý kiến ​​khác

Với mô tả của độc giả của chúng tôi về vấn đề ở trên, chúng tôi cần tính đến một số mục bổ sung:

  • Vào thời điểm xảy ra sự cố, Explorer đang cố gắng điền danh sách xem nhưng không thể.
  • Không thể truy cập vào các ổ đĩa sau khi màn hình khởi động lại, có thể cho thấy một quy trình khác đã khóa một hoặc nhiều thiết bị đó, do đó ngăn chặn quyền truy cập từ quy trình explorer.exe mới được tạo.
  • Đang chạy sfc / scannow và nhận được thông tin về tình trạng sạch sẽ, đưa các tài nguyên được Windows bảo vệ xuống cuối danh sách để xem xét. Các nguyên nhân khác có nhiều khả năng hơn.

Đã sửa lỗi

Trong trường hợp cụ thể này, có ba lĩnh vực mà tôi sẽ tìm kiếm giải pháp. Đầu tiên liên quan đến dịch vụ Windows Search, thứ hai liên quan đến việc điều tra các phần mở rộng shell và cuối cùng sẽ là bản thân các tài liệu phân phối lại VC ++.

Vì ảnh chụp màn hình ban đầu cho thấy sự cố xảy ra khi Explorer đang cố gắng điền chế độ xem danh sách, nên có thể dịch vụ Tìm kiếm của Windows đang chặn quyền truy cập vào các tài nguyên được yêu cầu. Tôi đã thấy điều này xảy ra khi dịch vụ gặp sự cố và không có thông số khởi động lại chính xác.

nhấn Thắng + R> kiểu services.msc> OK để khởi động bảng điều khiển quản lý với mô-đun dịch vụ. Cuộn xuống Windows Search và nhấp đúp vào mục nhập để mở hộp thoại Thuộc tính. Đảm bảo các cài đặt trên tab Khôi phục khớp với hình ảnh bên dưới.

Sự cố phổ biến nhất là cài đặt 'Khởi động lại dịch vụ sau:'. Lỗi này thường xuyên xảy ra khi cài đặt này khác 0.

Phần mở rộng Shell có vấn đề

Tải xuống Nirsoft's ShellExView cho kiến ​​trúc hệ thống của bạn (x86 hoặc x64), hãy cài đặt và chạy nó. Sẽ mất một chút thời gian để kiểm tra hệ thống và điền dữ liệu vào bảng. Cuộn qua cột Thời gian sửa đổi CLSID và nhấp vào tiêu đề để sắp xếp trên trường này. Nếu bạn muốn loại trừ các mô-đun do Microsoft cung cấp, bạn có thể truy cập Tùy chọn> Ẩn tất cả các tiện ích mở rộng của Microsoft . Đối với những người sử dụng phiên bản Windows 64 bit, bạn cũng có thể muốn hiển thị các tiện ích mở rộng 32 bit trên hệ thống bằng cách truy cập Tùy chọn> Hiển thị phần mở rộng Shell 32-bit .

Tìm kiếm các phần mở rộng đã được thêm ngay trước khi các triệu chứng bắt đầu. Chọn một hoặc nhiều và nhấn F7 hoặc đi đến Tệp> Vô hiệu hoá các mục đã chọn hoặc nhấp vào biểu tượng đèn LED màu đỏ trên thanh công cụ. Tốt nhất, điều này nên được thực hiện tại một thời điểm.

Kiểm tra xem các triệu chứng có còn không. Nếu đúng như vậy, bạn có thể bật lại (các) tiện ích mở rộng đã bị vô hiệu hóa trước đó bằng cách sử dụng F8 , Tệp> Bật các mục đã chọn hoặc biểu tượng thanh công cụ LED màu xanh lá cây. Từ đây, hãy tắt một tiện ích mở rộng khác và lặp lại quá trình kiểm tra cho đến khi bạn tìm thấy tiện ích mở rộng gây ra sự cố.

Sửa chữa / Cài đặt lại VC ++ Redistributables

Tôi sử dụng cái này như một phương sách cuối cùng, nếu chỉ có một chương trình đang phát ra lỗi. Nếu bạn có nhiều chương trình đang gặp sự cố với lỗi thời gian chạy VC ++, bạn có thể muốn thử cách này trước.

Khi xem các chương trình đã cài đặt trên hệ thống của tôi ( Bảng điều khiển> Chương trình và Tính năng ), nó hiển thị mọi phiên bản của các gói có thể phân phối lại (và một số bản cập nhật của chúng), từ phiên bản 8 đến phiên bản 12 (VC ++ 2005 đến VC ++ 2013). Tôi đã cài đặt chúng vì các công cụ lập trình của Microsoft mà tôi sử dụng. Hầu hết người dùng sẽ không có tất cả những thứ này.

Bạn có thể tìm thấy tải xuống mới nhất cho các phiên bản Visual C ++ được hỗ trợ từ Microsoft. Đối với mục đích của chúng tôi ở đây, bạn chỉ cần quan tâm đến những gói được gắn nhãn là gói 'có thể phân phối lại'. Các liên kết được phân loại là gói dịch vụ dành cho các công cụ lập trình, không chỉ đơn giản là thời gian chạy. Bạn sẽ chỉ cần những cái hiện được liệt kê trong các chương trình đã cài đặt trên hệ thống của bạn. Cài đặt các phiên bản khác sẽ không giúp ích được gì trong trường hợp này. Người dùng hệ điều hành 64 bit có thể cần cả phiên bản x86 và x64 của CRT.

Windows Update kiểm tra xem máy tính của bạn có cài đặt các bản cập nhật mới nhất cho các gói này hay không, nhưng nó không kiểm tra để đảm bảo rằng nó được cài đặt đúng cách và không bị hỏng. Trình cài đặt có thể kiểm tra để đảm bảo rằng tất cả các tệp thời gian chạy là tệp thích hợp và tất cả các mục đăng ký đều đúng.

Khi bạn đã tải xuống các trình cài đặt thích hợp, hãy chạy chúng trên hệ thống. Các phiên bản 2005 sẽ nhắc bạn chấp nhận thỏa thuận cấp phép trước khi cài đặt lại gói. Tất cả những thứ khác đều có GUI sẽ hỏi bạn xem bạn có muốn sửa chữa hoặc gỡ cài đặt hiện có hay không. Trong hầu hết các trường hợp, hoạt động sửa chữa sẽ khắc phục mọi sự cố.

Nếu bạn muốn thử phương pháp khắc nghiệt nhất, bạn có thể gỡ cài đặt thời gian chạy, khởi động lại máy, sau đó cài đặt lại chúng. Tôi không khuyến nghị phương pháp này với thời gian chạy 2005 và 2008. Nếu không có chúng, Windows sẽ tạo ra rất nhiều lỗi và rất nhiều chức năng sẽ không có cho bạn khi bạn khởi động lại.

Phần kết luận

Với một chút quan sát, một chút thử và sai và một số hiểu biết về cách lỗi được tạo ra từ các thời gian chạy trên hệ thống, các vấn đề phần mềm có thể được tìm thấy và giải quyết mà không cần dùng đến các công cụ và nhật ký gỡ lỗi phức tạp.

Bạn đã gặp lỗi thời gian chạy trên hệ thống của mình chưa? Những gì được yêu cầu để giải quyết chúng? Hãy cho tôi biết trong các ý kiến ​​dưới đây.

Đăng lại Đăng lại tiếng riu ríu E-mail Đây là lý do tại sao FBI ban hành cảnh báo cho Hive Ransomware

FBI đã đưa ra cảnh báo về một loại ransomware đặc biệt khó chịu. Đây là lý do tại sao bạn cần phải đặc biệt cảnh giác với ransomware Hive.

Đọc tiếp
Chủ đề liên quan
  • các cửa sổ
  • Giải thích về công nghệ
  • Hỏi các chuyên gia
  • Windows Explorer
  • các cửa sổ
  • Chương trình quản lý dữ liệu
  • Tìm kiếm trên Windows
  • Xử lý sự cố
Giới thiệu về tác giả Bruce Epper(13 bài báo đã xuất bản)

Bruce đã chơi điện tử từ những năm 70, máy tính từ đầu những năm 80 và trả lời chính xác các câu hỏi về công nghệ mà anh đã không sử dụng cũng như không nhìn thấy trong suốt thời gian qua. Anh ấy cũng tự làm phiền mình khi cố gắng chơi guitar.

Xem thêm từ Bruce Epper

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký