nitepark과 함께 excel을...(http://cafe.daum.net/exceli/)
게 시 판 : 컴퓨터 문제 해결 Tip
번 호 : 30
제 목 : DLL 연산 오류에 대하여
글 쓴 이 : 야방
조 회 수 : 73
날 짜 : 2001/11/19 17:46:09
내 용 :
문제 1.
; DLL 파일이 없다며 실행되지 않는 프로그램은 어떻게 해야 하나요?
다운로드한 프로그램을 설치해 실행하려 하면 DLL 파일이 없다는 메시지가 뜹니다. DLL 파일이 무엇이고, 이 파일이 없어 프로그램을 실행시킬 수 없는 경우엔 어떻게 해야 하나요?
해결 방안
; 에러가 난 DLL 파일을 복구해야 합니다
여러 개의 프로그램이 같은 기능의 코드를 필요로 하는 경우, 이 코드를 서로 공유할 수 있게 하면 그만큼 메모리를 아낄 수 있습니다. 그러면 여러 프로그램들이 자료를 교환하며 동작하는 환경도 구성할 수 있고요. 이런 기능을 DLL(Dynamic Link Library, 동적 연결 라이브러리) 또는 DDE(Dynamic Data Exchange, 동적 자료 교환)라고 합니다.
윈도 시스템 폴더의 'Kernel.exe', 'Gdi.exe', 'User.exe'도 실제로는 프로세스 관리, 그래픽 처리 명령 등을 포함하는 DLL 파일입니다. 또 글씨에 모양만 저장되는 FNT와 달리 필요할 때마다 글씨체가 링크되는 FON 역시 일종의 DLL 파일입니다.
윈도 내 여러 프로그램들이 하나의 DLL을 사용하도록 하면 그만큼 메모리를 아낄 수 있습니다.
DLL 에러가 생기는 것은 다른 프로그램을 삭제하는 과정에서 DLL 파일이 사라져버렸기 때문입니다.
DLL 에러를 수정하려면 '시작→복구→sfc' 명령으로 시스템 파일을 복구하는 방법, 다른 컴퓨터로부터 DLL 파일을 복사해 와서 문제가 발생한 컴퓨터의 같은 폴더에 넣어주는 방법, 관련 프로그램을 재설치하는 방법 중에서 하나를 선택해야 합니다.
=======================================================
문제 2
; 윈도우에서 사용하다 보면 dll 연산오류라고 메시지가 나오면서 정상적으로 윈도우가 실행되지 않습니다
해결 방안
; DLL은 작은 프로그램들의 집합으로서, 컴퓨터 내에서 실행되고 있는 큰 프로그램에서 필요로 할 때 그 중 어떤 것이라도 호출될 수 있습니다.
큰 프로그램이 프린터나 스캐너 등과 같은 특정 장치와 통신을 할 수 있게 하는 작은 프로그램은 종종 DLL 프로그램으로 이루어집니다. (보통은 DLL 파일이라고 불립니다).
DLL 파일들의 장점은 그들이 주프로그램과 함께 램에 적재되지 않기 때문에 램 공간을 절약한다는데 있습니다.
DLL 파일은 필요한 경우에만 적재되어 실행됩니다. 예를 들어 마이크로소프트 워드 사용자가 문서를 편집하고 있는 동안에 프린터의 DLL 파일은 램에 적재되어야 할 필요가 없습니다.
만약 사용자가 문서를 출력하려고 결심하면 워드 프로그램은 그제야 프린터 DLL 파일을 적재하여 실행시킵니다.
DLL 파일은 거의 ".dll"이라는 파일 확장자를 갖습니다. DLL 파일들은 주프로그램과 함께 컴파일 되지 않고, 실행 중에 그것을 사용하는 프로그램들과 동적으로 연결됩니다.
이러한 DLL 파일들은 C 또는 C++ 과 같은 프로그래밍 언어에서 제공되는 라이브러리 루틴들과 어느 정도는 필적하는 것으로 볼 수 있습니다.
윈도우나 어떤 응용프로그램이 실행될 때 필요로 하는 dll 파일에 문제가 생기면 오류가 나옵니다.
특정 프로그램에서 dll 오류가 나온다면 해당 프로그램을 삭제하고 다시 설치하면 문제가 해결됩니다.
그러나 윈도우와 관련한 dll 오류가 나온다면 윈도우 시스템 파일을 복구하여야 합니다.
이러한 상황이 윈도우를 사용할 때 자주 발생한다면 중요한 자료는 백업을 해 놓고 윈도우를 처음부터 다시 설치하여야 합니다.
윈도우를 복구하기 위해서는 윈도우 파일 검사기를 활용하여 복구합니다.
시스템(sfc)파일 검사기로 파일을 복원합니다.
시스템 파일의 오류는 시스템 오류와 직결됩니다.
따라서 컴퓨터의 오류를 없애는 지름길은 응용프로그램을 설치하거나 지우는 과정에서 시스템 파일이 함께 지워지거나 바뀌는 일이 없도록 하는 것입니다.
윈도우 98의 수행과 응용 프로그램에 필요한 각종 시스템 파일은 윈도우 98을 설치할 때 함께 설치됩니다.
주로 DLL 파일에서 오류가 자주 일어난다면 시스템 파일 검사기를 실행 후 시스템에서 바뀌거나 지워진 파일을 찾습니다.
시스템 파일 검사기는 \WINDOWS\SYSTEM 폴더에 SFC.EXE라는 실행파일 입니다.
해당 폴더에서 직접 파일을 실행하거나 시작--실행 버튼을 눌러 나타나는 실행 대화상자에서 'SFC' 라고 입력하고 확인 버튼을 클릭 합니다.
화면에 나타나는 "시스템 파일 검사기" 대화상자에서 시작 버튼을 누르면 시스템 파일의 검사가 시작됩니다.
검사 진행과정에서 바뀐 시스템 파일이 발견되면 화면에 "해당파일을 어떻게 조치할 것인지" 를 고르는 옵션이 나타납니다.
이 때 윈도우 98을 설치할 때 함께 제공된 시스템파일을 검사 기준으로 합니다.
해당 파일을 윈도우 98의 원본 파일로 바꾸려면 "파일복원"에 표시하고 [확인] 버튼을 누르십시오.
[파일 복원] 대화상자가 열리면 윈도우 98 원본 CD의 경로를 찾아야 합니다.
즉시 윈도우 98에 있는 시스템 파일로 바꿔 주는 것이 안전하기 때문에 복원할 원본위치에서 시디 롬에 윈도우 정품 시디를 넣고 [찾아보기] 버튼을 클릭 합니다.
윈도우 98의 원본 CD가 들어 있는 폴더를 올바르게 지정했다면 (예:d:\win98) 다시 [확인] 버튼을 누르십시오.
이 때 저장할 경로는 해당파일이 들어 있는 폴더이므로 굳이 바꿔줄 필요가 없습니다.
다음 과정에서는 바꾸기 전의 파일을 백업하기 위한 [파일 백업] 대화상자가 열리고 만약 다음에 어떤 문제가 생길지 걱정된다면 해당파일을 백업합니다.
백업 폴더를 설정하고 [확인] 버튼을 클릭 합니다.검사가 끝나면 그 결과가 나옵니다.
화면을 자세히 보면 복원된 파일 검사용 데이터 파일에 추가된 것, 변경된 파일 복원된 파일 변경 무시된 파일의 숫자가 나옵니다.
추가된 파일은 '검사 정보 업데이트' 항목의 결과입니다.
이것은 문제가 없다고 판단될 때만 이용하는 것이 좋습니다.
======================================================
문제 3 (라이브러리 오류)
; 윈도우용 프로그램을 다른 컴퓨터에 복사해서 실행하면 '*.dll 라이브러리를 로드시키지 못합니다.' 라는 메시지가 나옵니다. 그 디렉토리 내에는 분명히 *.dll 파일이 존재하는데 왜 실행되지 않는 것인가요?
해결 방안
; *.dll(dynamic link library)은 라이브러리 함수 파일입니다. 프로그래밍을 해보신 분이라면 아마 분명히 이해하시겠지만 일반 사용자들은 좀 애매한 부분일겁니다. 쉽게 말해 동적연결 함수 파일이죠.
프로그램을 작성할 때 자주 사용되는 함수 들을 묶어놓은 파일인데 프로그래머가 코딩작업을 하다보면 아주 세밀한 부분까지 코딩을 해줘야 합니다. 프로그램의 처음부터 마지막까지 아주 사소한 부분도 결코 그냥 건너뛸 수 없는겁니다. 왜냐하면 컴퓨터는 프로그래머가 코딩한(지시한) 내용대로 움직이기 때문이죠.
그러다 보니 기본적으로 어느 프로그램이나 공통적으로 사용하는 부분들에 대해 함수형태로 만들어 하나의 파일로 만들어놓고 프로그램이 실행되는 과정에서 해당부분만 호출해서 사용하게 되는 것입니다. 이러한 라이브러리 파일은 운영체제내에서 제공되는 것들도 있고 프로그래머가 직접 만든 것도 있는데 보통 윈도우 디렉토리의 하위 시스템 디렉토리에 위치하며 해당 프로그램 디렉토리에 위치해야 하는 경우도 있습니다. 어떤 위치에 파일이 존재해야 하는지 정해진 것은 아니고 설치한 프로그램을 작성할 때 정해진 위치에 파일이 복사되어 있어야 합니다.
그러므로 윈도우용 응용프로그램들은 파일만 복사한다고 해서 정상적으로 실행되지 않습니다. 각종 INI 파일이나 윈도우 98의 레지스트리 파일에 등록되어야 하는 것이 있으며, 또한 반드시 정해진 위치에 복사되어야 합니다.
======================================================
문제 4 (DLL 파일이 없다며 실행이 중단될 때)
해결 방안
; 이럴 경우에는 해당 파일을 구해서 지정된 디렉토리에 복사해주면 됩니다.
위에서도 설명했듯이 실제로 프로그램의 실행을 담당하는 것은 .EXE 파일이지만, DLL 이 하나라도 없다면 제대로 실행되지 않습니다.
DLL 이 없다는 메시지와 함께 실행이 중단된다면 두 가지 경우가 있을 수 있습니다.
하나는 프로그램 설치 후 사용자의 실수나 다른 프로그램의 영향으로 해당 DLL 파일이 삭제 또는 변경된 경우이고, 다른 하나는 프로그램의 배포본이 필수 라이브러리를 제외한 부분만 포함하고 있을 경우입니다.
첫번째 경우라면 해당 프로그램을 다시 설치하는 것으로 문제를 해결할 수 있고, 두 번째 경우라면 몇 가지 필수 라이브러리를 설치하면 해결됩니다.
윈도우 95나 98에서 사용되는 필수 라이브러리 로는 비주얼베이직(VB:Visual Basic) 런타임 모듈, 다이렉트X, MFC 런타임 모듈 등이 있습니다.
이와 같은 라이브러리들을 공개 자료실을 통해 구해서 설치하면 됩니다.
=======================================================
문제 5 (DLL 오류)
대부분의 dll 오류로 인한 문제는 오류가 난 파일을 "windows\system" 폴더 안에 넣어주면 해결된다.
======================================================
문제 6
특정 프로그램을 사용할 때 연달아 "dll 연산오류"가 나온다면 그 프로그램을 삭제했다가 다시 설치한다.
======================================================
문제 7
윈도 자체 문제로 dll 오류가 생기면 윈도 시스템 파일을 복구해야 한다.
"C:/Windows/System"폴더를 연다. sfc.exe(시스템 파일 검사 프로그램)파일을 찾아 실행한다. 시스템 파일 검사기가 나타나면 "시작"버튼을 누른다. 검사기가 시스템 파일에서 문제를 찾으면 해당 파일을 어떻게 처리할 것인가를 묻는다. "파일 복원"을 선택한 다음 윈도 CD를 집어 넣고 확인을 누른다.
=======================================================
문제 8(DLL 연산 오류가 자주 발생한다.)
해결 방안
; 윈도를 사용하다 보면 DLL이 잘못된 연산을 수행했다는 오류가 자주 발생한다. DLL(Dynamic Link Library)은 전체 프로그램 내에 들어 있는 작은 세부 프로그램들로, 전체 프로그램을 실행할 때는 실행되지 않고 있다가 필요할 때 메모리로 로드된다. 워드로 문서 작업을 하고 나서 프린트 버튼을 누르면 다른 프로그램을 띄우지 않고 바로 프린트 설정 창이 뜨는데, 이런 작업이 DLL 프로그램들이 수행하는 일이다.
윈도에서 DLL을 사용하는 이유는 메모리를 적게 소모하기 때문이다. DLL은 필요할 때만 메모리에 적재되기 때문에 용량이 큰 프로그램들에는 DLL 파일이 많을 수밖에 없다.
DLL 파일의 오류를 가장 간편하게 수정하는 방법은 해당 프로그램을 다시 설치하는 것이다. 기존 상태에서 복구하려면 시스템 파일 검사기를 사용해야 한다.
윈도 98에서 시스템 파일 검사기를 이용하려면 'C:\WINDOWS\SYSTEM' 폴더에서 'SFC.exe'를 실행하거나, '시작→실행'을 선택해 나타나는 대화상자에서 'SFC' 라고 입력하고 '확인' 버튼을 누른다. 프로그램이 시작되면 '시작' 버튼을 눌러 시스템 파일 검사를 시작한다. 검사 진행 과정에서 바뀐 시스템 파일이 발견되면, 해당 파일을 어떻게 조치할 것인지 선택하는 옵션이 나타난다. 해당 파일을 원본 파일로 바꾸려면 '파일 복원'에 표시하고 '확인' 버튼을 누른다. 이런 식으로 윈도의 DLL 파일을 모두 복원하면 된다.