Windows Visual C++ 런타임 오류를 수정하는 방법

Windows Visual C++ 런타임 오류를 수정하는 방법

Windows의 공유 라이브러리는 공통 작업을 수행해야 할 때마다 바퀴를 다시 만들 필요가 없는 프로그래머를 위해 프로그래밍을 훨씬 더 효율적으로 만듭니다. 또한 더 적은 위치에서 패치해야 하고 모든 응용 프로그램을 다시 컴파일할 필요가 없기 때문에 공유 코드에서 보안 허점이 발견되었을 때 이를 쉽게 막을 수 있습니다.





이러한 긍정적인 측면에도 불구하고 생성할 수 있는 오류 메시지의 근본 원인을 해결하려고 할 때 자체 문제를 제기할 수 있습니다.





독자의 질문:

Dell Inspiron 530에서 Windows Vista 32비트 C:Windowsexplorer.exe 문제를 해결하려면 어떻게 합니까?





스크린샷에 표시된 대화 상자에서 확인 버튼을 클릭하면 화면이 어두워지고 정상 실행으로 돌아오지만 액세스를 시도할 때 C, D 및 때때로 E 드라이브에 액세스할 수 없습니다. 내 컴퓨터에서.

달리기 sfc /scannow 오류를 찾지 않습니다. 이 문제를 해결하기 위해 Dell 및 Microsoft 웹 사이트에서 업데이트를 다운로드했습니다. Microsoft Visual C++ 2010 재배포 가능 패키지(x86)도 설치했습니다. PC는 Windows Update에 따라 완전히 최신 상태입니다.



브루스의 대답:

참고: Windows 7 및 이전 버전의 Windows 탐색기에 대한 논의는 Windows 8 및 이후 버전의 파일 탐색기에도 적용됩니다. 그들 사이에 현저한 차이가 있는 경우 명시적으로 명시됩니다.

윈도우 셸

윈도우 익스플로러 ~이다 셸을 실행하고 작업 관리자 또는 Sysinternals의 프로세스 탐색기에서 볼 수 있는 explorer.exe 프로세스로 실행됩니다. 다른 많은 Windows 프로그램과 마찬가지로 셸에서 제공하는 모든 기능은 단일 실행 파일에 통합되지 않습니다. 속성 시트, 속성 처리기, 미리 보기 처리기, 상황에 맞는 메뉴 및 Windows 탐색기에서 매일 사용하는 기타 많은 요소를 구현하는 데 사용되는 수십 개의 다른 EXE 및 DLL 파일이 있습니다.

확장 가능한 셸

셸 확장을 통해 프로그래머는 작업을 수행하기 위한 DLL을 작성하고 운영 체제에 DLL을 등록하여 Windows 탐색기에 기능을 쉽게 추가할 수 있으므로 Explorer는 작업을 수행하기 위한 코드를 찾을 위치를 알 수 있습니다. 예를 들어, 7-Zip 표준 상황에 맞는 메뉴에 하위 메뉴를 추가하여 아카이브 처리 작업에 빠르게 액세스할 수 있으며, Hard Disk Sentinel은 표준 드라이브 아이콘에 아이콘 오버레이를 추가하여 드라이브 상태를 한 눈에 볼 수 있습니다. 해시탭 선택한 파일의 해시를 계산하고 표시하기 위해 새 속성 시트를 추가합니다.

이러한 셸 확장의 대부분은 프로세스 내 COM(구성 요소 개체 모델) 서버로 구현됩니다. 즉, 프로세스(이 경우 Windows 탐색기)가 확장을 사용하면 작업 관리자나 프로세스 탐색기에 자체 PID(프로세스 식별자)가 있는 별도의 실행 프로세스로 나타나지 않습니다. 대신 호출하는 explorer.exe 프로세스 내에서 실행됩니다.

기본 단일 인스턴스 프로세스

Windows 탐색기는 두 개의 개별 프로세스로 실행할 수 있도록 작성되었지만 기본 구성에서는 단일 인스턴스만 실행합니다. 시작 프로세스의 일부로 처음 실행될 때 Windows 데스크톱 환경을 만듭니다. 다시 실행하면 새 프로세스를 시작하는 대신 기존 프로세스에 새 스레드가 생성되어 익숙한 파일 관리 창을 표시합니다.

이 동작을 사용하면 메모리 공간을 줄일 수 있지만 문제를 해결할 때 약간의 비틀림이 발생할 수도 있습니다. DLL에서 제공하는 프로세스 내 서버를 포함하여 explorer.exe 프로세스에서 실행되는 코드의 심각한 오류 또는 처리되지 않은 예외로 인해 전체 데스크톱 환경이 다운됩니다.

대부분의 경우 데스크톱 프로세스가 자동으로 다시 시작됩니다. 다시 시작되지 않으면 Ctrl-Shift-Esc를 사용하여 작업 관리자를 불러올 수 있습니다. 거기에서 로 이동 파일 > 새 작업(실행…) > 유형 explorer.exe > 확인 프로세스를 다시 시작합니다.

이것은 간단한 변경으로 피할 수 있습니다. 열려있는 Windows 탐색기 > 구성 > 폴더 및 검색 옵션 비스타/7에서. Windows 8 이상에서는 다음을 엽니다. 파일 탐색기 > 보기 > 옵션 > 폴더 및 검색 옵션 변경 . 선택 보기 탭 그리고 확인 별도의 프로세스에서 폴더 창 실행 .

중지 코드: 중요한 프로세스가 종료되었습니다.

이 설정을 변경하면 열려 있는 다른 모든 Windows 탐색기 창에서 데스크탑 프로세스가 분리됩니다. 이러한 Explorer 창 중 하나가 충돌하더라도 바탕 화면은 손상되지 않은 상태로 유지됩니다.

Microsoft Visual C++ 런타임 라이브러리(CRT)

Microsoft Visual C++ 런타임 라이브러리는 입력/출력, 파일 조작, 메모리 할당, 시스템 호출 등과 같은 많은 작업을 자동화하는 Windows 프로그래밍 루틴을 제공합니다.

모든 Windows 설치에는 최소한 두 가지 다른 버전의 CRT가 설치됩니다. Windows 10 시스템을 통해 새로 구축된 Vista SP2에는 버전 8.0과 9.0(각각 VC 2005 및 VC 2008)이 모두 있습니다. 추가 소프트웨어가 설치되면 프로그램 또는 해당 구성 요소를 만드는 데 사용된 Visual C++ 버전에 따라 최신 버전의 런타임도 포함될 수 있습니다.

런타임 오류

코드 조각에서 오류나 예외가 발생하면 이상적으로는 현재 실행 중인 프로시저에서 가능한 한 빨리 처리되고 수정되거나 정상적인 오류가 허용됩니다. 오류가 로컬에서 처리되지 않으면 현재 실행 중인 코드를 호출한 코드까지 전달되고 예외가 처리될 때까지 프로세스가 계속됩니다. 체인의 맨 위로 실행을 완료했지만 여전히 처리되지 않으면 위와 같이 런타임 오류가 생성됩니다.

사용자가 확인 버튼을 클릭하면 프로세스가 종료됩니다. 프로그램에 중요한 서비스와 같은 오류 동작이 정의되어 있거나 해당 실행 상태가 다른 프로세스에서 모니터링되는 경우 자동으로 다시 생성될 수 있습니다. 이것이 이 경우에 일어나는 일입니다. explorer.exe 프로세스가 종료되면 화면이 어두워지고 explorer.exe 프로세스가 다시 시작되면 바탕 화면이 다시 나타납니다.

위의 오류 메시지는 분명히 explorer.exe 프로세스에서 발생했음을 나타내지만 explorer.exe 자체에 문제가 있을 가능성은 없습니다. 범인은 Explorer에서 사용 중인 타사 확장과 같은 다른 곳에 있을 가능성이 훨씬 더 높습니다.

기타 고려 사항

위의 문제에 대한 독자의 설명과 함께 고려해야 할 몇 가지 추가 항목이 있습니다.

  • 충돌이 발생했을 때 Explorer는 목록 보기를 채우려고 했지만 실패했습니다.
  • 데스크톱이 다시 생성된 후 드라이브에 액세스할 수 없다는 것은 다른 프로세스에 이러한 장치 중 하나 이상이 잠겼기 때문에 새로 생성된 explorer.exe 프로세스에서 액세스할 수 없음을 나타낼 수 있습니다.
  • 달리기 sfc /scannow 깨끗한 상태의 청구서를 받으면 Windows 보호 리소스를 고려 대상 목록의 맨 아래로 떨어뜨립니다. 다른 원인이 훨씬 더 가능성이 높습니다.

수정 사항이 있습니다.

이 특별한 경우에 솔루션을 찾는 세 가지 영역이 있습니다. 첫 번째는 Windows Search 서비스, 두 번째는 셸 확장 조사, 마지막은 VC++ 재배포 가능 패키지입니다.

원본 스크린샷은 Explorer가 목록 보기를 채우려고 할 때 발생하는 충돌을 보여주기 때문에 Windows Search 서비스가 필요한 리소스에 대한 액세스를 차단하고 있을 수 있습니다. 서비스가 충돌하고 올바른 다시 시작 매개변수가 없을 때 이런 일이 발생하는 것을 보았습니다.

누르다 승+R > 유형 services.msc > 확인 서비스 모듈로 관리 콘솔을 시작합니다. Windows 검색까지 아래로 스크롤하고 항목을 두 번 클릭하여 속성 대화 상자를 엽니다. 복구 탭의 설정이 아래 이미지와 일치하는지 확인하십시오.

가장 일반적인 문제는 '다음 이후 서비스 재시작:' 설정입니다. 이 오류는 이 설정이 0이 아닌 경우에 자주 발생합니다.

문제가 있는 셸 확장

다운로드 Nirsoft의 ShellExView 시스템 아키텍처(x86 또는 x64)에 맞게 설치하고 실행합니다. 시스템을 검사하고 테이블을 데이터로 채우는 데 약간의 시간이 걸립니다. CLSID 수정 시간 열로 스크롤하고 헤더를 클릭하여 이 필드를 정렬합니다. Microsoft에서 제공하는 모듈을 제외하려면 다음으로 이동할 수 있습니다. 옵션 > 모든 Microsoft 확장 숨기기 . 64비트 버전의 Windows를 사용하는 경우 다음으로 이동하여 시스템에 32비트 확장을 표시할 수도 있습니다. 옵션 > 32비트 셸 확장 표시 .

증상이 시작되기 직전에 추가된 확장을 찾으십시오. 하나 이상을 선택하고 F7 또는 로 이동 파일 > 선택한 항목 비활성화 , 또는 도구 모음에서 빨간색 LED 아이콘을 클릭합니다. 이상적으로는 한 번에 하나씩 수행해야 합니다.

증상이 지속되는지 테스트합니다. 그렇다면 이전에 비활성화된 확장을 다음을 사용하여 다시 활성화할 수 있습니다. F8 , 파일 > 선택한 항목 활성화 , 또는 녹색 LED 도구 모음 아이콘. 여기에서 다른 확장 프로그램을 비활성화하고 문제를 일으키는 확장 프로그램을 찾을 때까지 테스트 프로세스를 반복합니다.

VC++ 재배포 가능 패키지 복구/재설치

하나의 프로그램만 오류를 제거하는 경우 최후의 수단으로 이것을 사용합니다. VC++ 런타임 오류에 문제가 있는 프로그램이 여러 개 있는 경우 먼저 시도해 볼 수 있습니다.

내 시스템에 설치된 프로그램을 볼 때( 제어판 > 프로그램 및 기능 ) 버전 8에서 버전 12(VC++ 2005에서 VC++ 2013까지)에 이르는 모든 버전의 재배포 가능 패키지(및 일부 업데이트)를 보여줍니다. 내가 사용하는 Microsoft 프로그래밍 도구 때문에 설치했습니다. 대부분의 사용자는 이 모든 것을 가지고 있지 않습니다.

당신은 찾을 수 있습니다 지원되는 Visual C++ 버전에 대한 최신 다운로드 마이크로소프트에서. 여기에서 우리의 목적을 위해 '재배포 가능' 패키지로 레이블이 지정된 패키지에만 관심이 있으면 됩니다. 서비스 팩으로 분류되는 링크는 단순히 런타임이 아닌 프로그래밍 도구를 위한 것입니다. 시스템에 설치된 프로그램에 현재 나열되어 있는 것만 필요합니다. 이 경우 다른 버전을 설치해도 도움이 되지 않습니다. 64비트 운영 체제 사용자는 CRT의 x86 및 x64 버전이 모두 필요할 수 있습니다.

Windows Update는 컴퓨터에 이러한 패키지에 대한 최신 업데이트가 설치되어 있는지 확인하지만 제대로 설치되고 손상되지 않았는지 확인하지는 않습니다. 설치 프로그램은 모든 런타임 파일이 올바른 파일이고 모든 레지스트리 항목이 올바른지 확인할 수 있습니다.

적절한 설치 프로그램을 다운로드했으면 시스템에서 실행하십시오. 2005 버전에서는 패키지를 다시 설치하기 전에 사용권 계약에 동의하라는 메시지가 표시됩니다. 다른 모든 제품에는 기존 설치를 복구할지 또는 제거할지 묻는 GUI가 있습니다. 대부분의 경우 수리 작업으로 문제가 해결됩니다.

가장 극단적인 방법을 시도하려면 런타임을 제거하고 시스템을 재부팅한 다음 다시 설치할 수 있습니다. 2005 및 2008 런타임에서는 이 방법을 권장하지 않습니다. 그것들이 없으면 Windows는 많은 오류를 생성하고 재부팅할 때 많은 기능을 사용할 수 없습니다.

결론

약간의 관찰, 시행착오, 시스템의 런타임에서 오류가 생성되는 방식에 대한 약간의 이해를 통해 복잡한 디버깅 도구 및 로그에 의존하지 않고도 소프트웨어 문제를 찾아 해결할 수 있습니다.

시스템에서 런타임 오류가 발생했습니까? 그것들을 해결하기 위해 무엇이 필요했습니까? 아래 의견에 알려주십시오.

공유하다 공유하다 트위터 이메일 FBI가 하이브 랜섬웨어에 대한 경고를 발령한 이유

FBI는 특히 악성 랜섬웨어 변종에 대해 경고했습니다. Hive 랜섬웨어를 특히 조심해야 하는 이유가 여기에 있습니다.

다음 읽기
관련 항목
  • 기술 설명
  • 전문가에게 물어보세요
  • 윈도우 익스플로러
  • 파일 탐색기
  • 윈도우 검색
  • 문제 해결
저자 소개 브루스 에퍼(13개 기사 게재)

Bruce는 70년대부터 전자제품을, 80년대 초반부터 컴퓨터를 다루며 그동안 사용하거나 본 적이 없는 기술에 대한 질문에 정확하게 답합니다. 그는 또한 기타를 치려고 하여 스스로를 귀찮게 한다.

브루스 에퍼가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.