DLL 파일이란 무엇이며 내 PC에서 누락 된 이유는 무엇입니까?

Windows에서 특정 DLL 파일을 찾을 수 없다는 오류가 발생하면 많은 DLL 사이트 중 하나에서 파일을 다운로드하고 싶을 수 있습니다. 하지 말아야하는 이유는 다음과 같습니다.

DLL이란 무엇입니까?

관련 : rundll32.exe는 무엇이며 왜 실행됩니까?

인터넷에서 DLL (Dynamic Link Library) 파일을 다운로드하면 안되는 이유를 시작하기 전에 먼저 DLL 파일이 무엇인지 살펴 보겠습니다. DLL 파일은 Windows에서 특정 작업을 수행하기위한 코드 및 데이터 집합이 포함 된 라이브러리입니다. 그런 다음 앱은 해당 활동을 수행해야 할 때 해당 DLL 파일을 호출 할 수 있습니다. DLL 파일은 Windows에서 직접 실행할 수 없다는 점을 제외하면 실행 파일 (EXE)과 매우 유사합니다. 즉, DLL 파일을 두 번 클릭하여 EXE 파일과 같은 방식으로 실행할 수 없습니다. 대신 DLL 파일은 다른 앱에서 호출하도록 설계되었습니다. 실제로 여러 앱에서 한 번에 호출되도록 설계되었습니다. DLL 이름의 "링크"부분은 또 다른 중요한 측면을 제안합니다. 여러 DLL을 함께 연결할 수 있으므로 하나의 DLL이 호출 될 때동시에 많은 다른 DLL도 호출됩니다.

C:\Windows\System32폴더 둘러보기를 통해 알 수 있듯이 Windows 자체는 DLL을 광범위하게 사용 합니다. 우리가 말하는 것의 예로 Windows 시스템 파일 "comdlg32.dll"을 고려해 보겠습니다. 공용 대화 상자 라이브러리라고도하는이 파일에는 파일 열기, 문서 인쇄 등과 같은 대화 상자와 같은 Windows에서 볼 수있는 많은 일반 대화 상자를 작성하기위한 코드와 데이터가 포함되어 있습니다. 이 DLL의 지침은 대화 상자에 대한 메시지 수신 및 해석에서 대화 상자가 화면에 표시되는 방식을 지정하는 것까지 모든 것을 처리합니다. 분명히 여러 앱이 동시에이 DLL을 호출 할 수 있습니다. 그렇지 않으면 한 번에 둘 이상의 앱에서 대화 상자 (아래 그림과 같은)를 열 수 없습니다.

DLL을 사용하면 코드를 모듈화하고 재사용 할 수 있습니다. 즉, 개발자가 평범하거나 일반적인 기능을 수행하기 위해 처음부터 코드를 작성하는 데 시간을 소비 할 필요가 없습니다. 개발자는 앱과 함께 설치할 자체 DLL을 만들지 만, 앱에서 호출하는 대부분의 DLL은 실제로 Windows 또는 Microsoft .NET Framework 또는 Microsoft C ++ 재배포 가능 패키지와 같은 추가 패키지와 함께 번들로 제공됩니다. 이러한 방식으로 코드를 모듈화 할 때의 또 다른 큰 장점은 전체 앱이 아닌 각 DLL에 업데이트를 적용하기가 더 쉽다는 것입니다. 특히 해당 DLL이 앱 개발자로부터 제공되지 않은 경우 더욱 그렇습니다. 예를 들어 Microsoft가 .NET Framework에서 특정 DLL을 업데이트하면 해당 DLL을 사용하는 모든 앱은 업데이트 된 보안 또는 기능을 즉시 활용할 수 있습니다.

관련 : Microsoft .NET Framework 란 무엇이며 내 PC에 설치되는 이유는 무엇입니까?

다운로드 한 DLL이 오래되었을 수 있음

그래서, 우리의 벨트 아래에있는 DLL에 대해 조금만 이해했다면, 시스템에서 DLL이 누락되었을 때 인터넷에서 다운로드하는 것은 어떨까요?

다운로드 한 DLL에서 발생하는 가장 일반적인 문제는 오래된 DLL이라는 것입니다. 대부분의 DLL 사이트는 자신 또는 사용자의 컴퓨터에서 DLL을 업로드하여 DLL을 얻습니다. 이미 문제를 볼 수 있습니다. 이러한 사이트의 대부분은 트래픽을 원하며 일단 DLL이 업로드되면 파일이 최신 상태로 유지되도록하는 인센티브가 거의 없습니다. 여기에 공급 업체는 일반적으로 업데이트 된 DLL을 개별 파일로 공개하지 않으며 파일을 최신 상태로 유지 하려는 사이트조차도  성공하지 못할 가능성이 있음을 알 수 있습니다.

DLL이 일반적으로 패키지에 통합되는 또 다른 문제도 있습니다. 패키지의 한 DLL에 대한 업데이트는 동일한 패키지에있는 다른 관련 DLL에 대한 업데이트와 함께 제공되는 경우가 많습니다. 즉, 최신 DLL 파일을받을 가능성이없는 경우에도 다음과 같은 관련 파일을 얻을 수 없습니다. 업데이트되었습니다.

다운로드 한 DLL이 감염 될 수 있음

덜 일반적이지만 잠재적으로 훨씬 더 나쁜 문제는 공급 업체가 아닌 소스에서 다운로드 한 DLL에 PC를 감염시킬 수있는 바이러스 또는 기타 맬웨어가로드 될 수 있다는 것입니다. 이는 파일을 어디에서 가져 오는지에 대해 너무주의하지 않는 사이트에서 특히 그렇습니다. 그리고 그러한 사이트가 위험한 출처에 대해 알려주기 위해 길을 벗어나는 것과는 다릅니다. 정말 무서운 부분은 감염된 DLL 파일을 다운로드하면 DLL 파일의 특성상 일반 감염된 파일보다 더 깊이있는 액세스 권한을 제공 할 위험이 있다는 것입니다.

관련 : Windows 10 용 최고의 바이러스 백신은 무엇입니까? (Windows Defender는 충분합니까?)

여기서 좋은 소식은 좋은 실시간 바이러스 백신 앱이 일반적으로 이러한 감염된 DLL 파일이 실제로 시스템에 저장되기 전에 감지하여 손상을 방지 할 수 있다는 것입니다. 그럼에도 불구하고 훌륭한 바이러스 백신 프로그램조차도 완벽한 보호 기능을 제공하지 못할 수 있음을 기억해야합니다. 위험한 파일을 다운로드하는 습관을 들이면 언젠가 따라 잡을 가능성이 높습니다. 이러한 DLL 사이트는 피하는 것이 가장 좋습니다.

어쨌든 그들은 아마 당신의 문제를 해결하지 않을 것입니다

PC의 단일 DLL 파일 만 손상되거나 삭제되었을 수 있지만 다른 DLL 또는 관련 앱 파일도 손상되거나 누락되었을 가능성이 높습니다. 특정 파일에 대한 오류가 발생하는 이유는 앱이 충돌하기 전에 발생한 첫 번째 오류이고 나머지에 대한 알림을받지 않기 때문입니다. 이것은 문제의 원인에 관계없이 사실 일 수 있습니다.

관련 : 불량 섹터 설명 : 하드 드라이브가 불량 섹터를 얻는 이유와 이에 대해 할 수있는 작업

DLL이 누락되거나 손상되는 이유는 무엇입니까? 다른 잘못된 앱 또는 업데이트가 파일을 바꾸려고했지만 실패했거나 오래된 복사본으로 바꿨을 수 있습니다. 기본 앱 설치 또는 .NET과 같은 패키지의 결함 일 수 있습니다. 하드 디스크의 불량 섹터와 같은 다른 문제로 인해 파일이 올바르게로드되지 않을 수도 있습니다.

DLL 오류를 어떻게 수정할 수 있습니까?

안정적이고 최신이며 깨끗한 DLL을 확보 할 수있는 유일한 방법은 DLL이 생성 된 소스를 통해 가져 오는 것입니다. 일반적으로 해당 소스는 다음과 같습니다.

관련 : Windows에서 손상된 시스템 파일을 검색 (및 수정)하는 방법

  • Windows 설치 미디어 . 설치 미디어에서 DLL 파일을 간단히 복사 할 수는 없지만 Windows를 다시 설치하는 것처럼 과감한 작업을 수행하기 전에 시도 할 수있는 빠른 옵션이 있습니다. Windows 리소스 보호 도구 (종종 시스템 파일 검사기 또는 SFC라고 함)를 사용하여 Windows에서 손상되거나 누락 된 시스템 파일을 검색하고 수정할 수 있습니다. 도구를 실행할 때 거기에서 파일을 복사해야 할 경우를 대비하여 설치 미디어가 있어야합니다. (설치 디스크가없는 경우 여기에서 다운로드 할 수 있습니다.)
  • Microsoft .NET Framework 패키지 . 여러 버전의 .NET이 Windows와 함께 자동으로 설치되며 많은 앱도 해당 패키지의 파일을 설치합니다. .NET 프레임 워크에 대한 기사를 읽을 수 있으며 관련 문제를 찾고 복구하기위한 몇 가지 조언이 있습니다.
  • 다양한 Microsoft Visual C ++ 재배포 가능 패키지 . 사용하는 앱에 따라 PC에 여러 버전의 C ++ 재배포 가능 패키지가 설치되어있을 수 있습니다. 어떤 것이 범인인지 좁히는 것이 어려울 수 있지만 시작하기 좋은 곳은 Microsoft에서 바로 최신 버전을 다운로드 할 수있는 여러 문제 해결 단계와 링크를 제공하는 C ++ 재배포 가능 항목에 대한 기사입니다.
  • DLL과 함께 제공된 앱 . DLL이 별도의 패키지에 포함되지 않고 앱과 함께 설치된 경우 가장 좋은 방법은 앱을 다시 설치하는 것입니다. 일부 앱에서는 전체 재설치 대신 수리를 수행 할 수 있습니다. 복구는 일반적으로 설치 폴더에서 누락 된 파일을 찾기 때문에 두 옵션 모두 작동합니다.

모든 방법이 실패하면 앱 공급 업체에 문의하여 개별 DLL 파일의 사본을 요청할 수 있습니다. 일부 회사는이 요청에 열려 있습니다. 일부는 그렇지 않습니다. 개별 파일을 제공하지 않는 회사를 만나면 적어도 문제 해결을위한 다른 제안을 제공 할 수 있습니다.