런타임 오류 7(Runtime Error 7)은 Visual Basic으로 작성된 프로그램 내부에서 발생하는 충돌 때문에 나타나는 문제입니다. Visual Basic 코드에서 Data Combo의 BoundText 속성을 열려고 할 때, 목록 부분의 항목을 아래로 스크롤하여 현재 선택된 요소가 더 이상 목록에 표시되지 않는 상태가 되면 다음과 같은 오류 메시지가 나타날 수 있습니다.
런타임 오류 "7": Out of Memory (메모리 부족)
흥미로운 점은 이 오류 메시지가 표시되더라도 실제로 메모리가 손실된 것은 아니며, 시스템 자체는 평소와 같이 정상적으로 작동한다는 것입니다. 따라서 이 오류는 메모리 문제가 아닌 파일 손상이나 등록 정보의 문제일 가능성이 높습니다. 아래의 단계를 따라 오류를 해결해 보세요.
런타임 오류 7의 원인은 무엇인가요?
런타임 오류 7은 일반적으로 다음과 같은 형식으로 표시됩니다.
런타임 오류 "7": Out of Memory
이 오류 메시지의 주된 원인은 FM20.dll 파일이 손상되었거나 훼손된 경우입니다. FM20.dll은 Visual Basic에서 프로그램의 다양한 기능과 설정을 인코딩하는 데 사용되는 파일로, Visual Basic 환경에서만 사용됩니다. 그런데 이 파일이 Visual Studio나 시스템의 다른 프로그래밍 인터페이스에서는 지원되지 않기 때문에 오류가 발생하는 것입니다.
다행히도 애플리케이션에서 FM20.dll 파일을 제거하고, PC에서 comctl32.ocx 파일의 등록을 해제하면 런타임 오류 7을 해결할 수 있습니다. 지금부터 구체적인 해결 방법을 살펴보겠습니다.
런타임 오류 7 해결 방법
1단계 – 애플리케이션에서 FM20.dll 파일 제거하기
Visual Basic으로 작성한 프로그램이 FM20.dll(Dynamic Link Library) 파일을 사용하고 있다면 해당 파일을 제거하는 것이 좋습니다. DLL 파일에는 여러 애플리케이션에서 공통으로 사용되는 다양한 함수들이 들어 있는데, 이러한 파일이 손상되면 특정 프로그램에서 오류 메시지가 발생할 수 있습니다.
① 명령 프롬프트 열기
- 시작 > 실행을 클릭합니다.
- 입력창에 'cmd'(따옴표 제외)를 입력합니다.
- 확인을 클릭합니다.
② DLL 등록 해제
- 'regsvr32 /u fm20.dll'(역시 따옴표 제외)을 입력합니다.
- Enter 키를 누릅니다.
- 정상적으로 처리되었다는 확인 창이 나타납니다.
2단계 – Comctl32.ocx 파일 등록 해제 및 삭제
Comctl32.ocx는 Windows에서 PC의 다양한 Visual Basic 구성 요소를 제어하는 데 사용되는 필수 파일입니다. 하지만 이 파일은 손상되기 쉬우며, 손상될 경우 Windows에서 런타임 오류 7이 발생할 수 있습니다. 가장 효과적인 해결책은 파일을 삭제한 후 다시 등록하는 것입니다.
① 명령 프롬프트 열기
- 시작 > 실행을 클릭합니다.
- 다음 명령어를 따옴표 없이 입력합니다: 'regsvr32 -u comctl32.ocx'
- 'DLL이 등록되지 않았습니다'라는 메시지가 나오면 확인을 누릅니다.
② 파일 검색
- 시작 > 검색을 클릭합니다.
- 모든 파일 및 폴더를 선택합니다.
- 파일 이름 입력란에 Comctl32.ocx를 입력합니다.
- '찾는 위치' 드롭다운 목록에서 로컬 하드 드라이브를 선택합니다.
- 검색을 클릭하면 결과가 오른쪽 창에 표시됩니다.
- Comctl32.ocx가 위치한 폴더 경로를 기록해 둔 후, 파일을 마우스 오른쪽 버튼으로 클릭하여 삭제합니다.
3단계 – Comctl32.ocx 파일 수동 교체
Comctl32.ocx 파일이 손상되었거나, 훼손되었거나, 시스템에서 사용할 수 있는 권한이 없는 경우가 많습니다. 이런 경우라면 파일을 수동으로 교체하면 오류가 해결될 수 있습니다.
- Comctl32.zip 파일을 신뢰할 수 있는 곳에서 다운로드합니다.
- Comctl32.ocx 파일의 압축을 컴퓨터 하드 드라이브에 풉니다.
- c:\Windows\System32 폴더로 이동합니다.
- 시스템에 있는 기존 Comctl32.ocx 파일을 찾습니다.
- 기존 Comctl32.ocx 파일의 이름을 Comctl32BACKUP.ocx로 변경합니다(백업용).
- 새 Comctl32.ocx 파일을 복사하여 C:\Windows\System32에 붙여넣습니다.
- 시작 > 실행을 클릭합니다(Vista 및 Win7에서는 '실행'을 검색).
- 입력창에 "cmd"를 입력합니다.
- 검은 화면(명령 프롬프트)에 "regsvr32 Comctl32.ocx"를 입력합니다.
- Enter 키를 누릅니다.
- PC를 재부팅합니다.
4단계 – 바이러스 검사 및 제거
백신 프로그램은 PC를 스캔하여 시스템에 존재하는 바이러스나 멀웨어 감염을 제거하는 소프트웨어 도구입니다. 바이러스는 컴퓨터의 여러 DLL 파일을 감염시켜 PC가 해당 파일을 읽지 못하게 만드는 경우가 많습니다. 이러한 문제가 발생하지 않았는지 확인하려면 백신 프로그램을 사용해 시스템 전체를 검사하고, 오류를 유발하는 감염 요소를 모두 제거해야 합니다. 신뢰할 수 있는 백신 프로그램을 설치하여 정기적으로 검사하는 것이 좋습니다.
5단계 – 레지스트리 정리
런타임 오류 7의 또 다른 큰 원인은 Windows의 레지스트리 데이터베이스입니다. '레지스트리'는 컴퓨터의 모든 설정, 정보, 옵션을 저장하는 중앙 데이터베이스로, Windows가 정상적으로 작동하는 데 필요한 중요한 설정들이 보관되는 곳입니다. 그런데 레지스트리 설정이 손상되거나 훼손되는 경우가 많으며, 이로 인해 PC 실행 속도가 느려지고 각종 오류가 발생할 수 있습니다.
이 문제를 해결하려면 '레지스트리 클리너'를 사용하여 PC를 스캔하고 손상되었거나 훼손된 설정을 복구해야 합니다. 평판이 좋은 레지스트리 클리너 프로그램을 활용하면 시스템을 깨끗하게 유지하고 런타임 오류 발생 가능성을 줄일 수 있습니다.