본문 바로가기

Language/C++

Regsvr32 사용법 및 오류 설명

Regsvr32 사용법 및 오류 메시지 설명

발생한 오류 메시지에 대한 설명이 이 문서에 없으면 다음 Microsoft 기술 자료 문서에서 오류 메시지를 설명하는 다른 문서를 참조하십시오.
315854  Windows 98 및 Windows Me 오류 메시지 리소스 센터
자세한 오류 메시지 설명, 권장되는 작업 및 추가 지원 리소스에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.

이 페이지에서

요약

Regsvr32 도구(Regsvr32.exe)를 사용하여 자동 등록할 수 있는 DLL 또는 ActiveX 컨트롤(OCX) 파일과 같은 OLE 컨트롤을 등록하고 등록 해제할 수 있습니다. 이 도구는 Windows, Microsoft Internet Explorer 또는 기타 프로그램에서 발생하는 일부 문제를 해결하는 데 필요할 수 있습니다. 예를 들어, Microsoft 기술 자료의 다음 문서에서는 Windows Update 사이트에서 다시 설치하기 전에 Regsvr32.exe를 사용하여 Wuv3is.dll 컨트롤을 등록 해제해야 합니다.
241122  WINUP: 제품 업데이트를 누르면 응용 프로그램 오류가 발생한다
컨트롤 등록에 실패하거나 성공하지 못한 OLE 컨트롤 등록 시도 문제를 해결하는 방법에 대한 개발자 정보가 필요하면 Microsoft 기술 자료의 다음 문서를 참조하십시오.
140346  OLE 컨트롤 등록 오류가 발생할 수 있는 원인

추가 정보

Regsvr32.exe는 Microsoft Internet Explorer 3.0 이상 버전, Windows 95 OEM 서비스 릴리스 2(OSR2) 이상 버전 및 Microsoft Windows NT 4.0 서비스 팩 5(SP5) 이상 버전에 포함되어 있습니다. Regsvr32.exe는 System(Windows Me/Windows 98/Windows 95) 또는 System32(Windows NT/Windows XP/Windows Vista) 폴더에 설치됩니다.

Regsvr32.exe 사용법

Regsvr32.exe에는 다음과 같은 명령줄 옵션이 있습니다.
Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

/u - 서버 등록 해제 
/i - 선택적 [cmdline]에 보내는 DllInstall 호출, /u가 지정되면 dll 설치 제거 호출 
/n - DllRegisterServer 호출 안 함, 이 옵션에는 /i가 지정되어야 함 
/s – 자동 모드, 메시지 상자 표시 안 함(Windows XP 및 Windows Vista에 추가됨)
Regsvr32.exe를 사용하면 구성 요소를 로드하고 해당 DLLSelfRegister 함수를 호출하려고 시도합니다. Regsvr32.exe는 이 시도가 성공하면 성공을 나타내는 대화 상자를 표시하고, 실패하면 Win32 오류 코드를 포함할 수 있는 오류 메시지를 반환합니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
193625  INFO: WinInet 오류 코드(12001 ~ 12156)
예를 들어, Sample.ocx ActiveX 컨트롤을 수동으로 등록하려면 명령 프롬프트에서 다음 명령을 입력하십시오.
c:\regsvr32.exe sample.ocx

Windows Vista의 Regsvr32.exe 오류 메시지

다음 목록에는 RegSvr32 오류 메시지와 가능한 원인에 대한 설명이 포함되어 있습니다.

명령 플래그 ""%1""이(가) 올바르지 않습니다. 명령 사용법을 검토하고 다시 시도하십시오.

명령줄에서 잘못된 옵션 조합이 regsvr32.exe로 전달되었습니다.

이 명령은 Microsoft Visual Studio OLE 사용자 지정 컨트롤 프로젝트가 열려 있을 때만 유효합니다. 

Regsvr32.exe가 Visual Studio에서 호출되었지만 명령줄에 모듈이 지정되지 않았습니다.

모듈을 등록하려면 이진 이름을 지정해야 합니다.

명령줄에서 모듈을 지정하지 않고 Regsvr32.exe가 호출되었습니다. 

OleInitialize 명령을 실행하지 못했습니다. 컴퓨터의 메모리가 부족한 것 같습니다. 열려 있는 프로그램을 닫고 다시 시도하십시오.

Regsvr32는 필요한 COM 라이브러리 함수를 호출하기 전에 COM 라이브러리를 초기화해야 하고 종료될 때 라이브러리의 초기화를 취소해야 합니다. 이러한 오류 메시지는 COM 라이브러리의 초기화 또는 초기화 취소 시도가 실패하는 경우 발생합니다. 

모듈 ""%1""을(를) 로드하지 못했습니다.\n\n 바이너리가 지정된 경로에 저장되었는지 확인하거나 디버그하여 바이너리 또는 종속 .DLL 파일에 문제가 있는지 확인하십시오.\n\n%2.

명령줄에 지정된 모듈을 로드하는 동안 오류가 발생했습니다. 오류 텍스트가 메시지의 일부로 나타납니다. 

모듈 ""%1""을(를) 로드했지만 %2 진입점을 찾을 수 없습니다.\n\n""%1""이(가) 올바른 DLL이나 OCX 파일인지 확인한 다음 다시 시도하십시오. 

Regsvr32.exe에서 명령줄에 지정된 모듈의 필요한 진입점을 찾지 못했습니다. 이 문제는 모듈에서 진입점을 제대로 내보내지 않았거나 모듈이 .DLL 또는 .OCX 파일이 아닌 경우 발생할 수 있습니다.

모듈 ""%1""을(를) 로드했지만 오류 코드 %3(으)로 인해 %2 호출에 실패했습니다.\n\n이 문제에 대한 자세한 내용을 보려면 오류 코드를 검색 단어로 사용하여 온라인에서 검색하십시오.

regsvr32.exe에서 명령줄에 지정된 모듈의 진입점을 호출했을 때 오류가 발생했습니다. 오류 코드가 메시지의 일부로 나타납니다. 

모듈 ""%1""은(는) 현재 실행 중인 Windows 버전과 호환되지 않습니다. 모듈이 x86(32비트) 또는 x64(64비트) 버전의 regsvr32.exe와 호환되는지 확인하십시오.

예를 들어, regsvr32.exe가 x86 컴퓨터에서 실행되고 명령줄에 지정된 모듈이 64비트 모듈인 경우 이 오류가 발생할 수 있습니다.

Windows Vista 이전의 Regsvr32.exe 오류 메시지

다음 목록에는 RegSvr32 오류 메시지와 가능한 원인에 대한 설명이 포함되어 있습니다. 

인식할 수 없는 플래그: /invalid_flag

플래그나 스위치의 잘못된 조합을 입력했습니다. 본 문서의 "Regsvr32.exe 사용법" 절을 참조하십시오. 

DLL 이름을 지정하지 않았습니다.

.dll 파일 이름을 포함하지 않았습니다. 본 문서의 "Regsvr32.exe 사용법" 절을 참조하십시오. 

Dllname을(를) 로드했으나 DllRegisterServer 또는 DllUnregisterServer 시작점이 없습니다.

Dllname이 .dll 또는 .ocx 파일이 아닙니다. 예를 들어, regsvr32 wjview.exe를 입력하면 이 오류 메시지가 생성됩니다. 

Dllname은(는) 실행 파일이 아니며 이 파일 형식에 대한 등록 도우미도 등록되어 있지 않습니다.

Dllname이 실행 파일(.exe, .dll 또는 .ocx)이 아닙니다. 예를 들어, regsvr32 autoexec.bat를 입력하면 이 오류 메시지가 생성됩니다.

Dllname을(를) 로드했으나 DllRegisterServer 또는 DllUnregisterServer 시작점이 없습니다.

Dllname을 내보내지 않았거나 Dllname의 손상된 버전이 메모리에 있을 수 있습니다. Pview를 사용하여 파일을 검색하고 제거해 보십시오. 

Dllname is not self-registerable or a corrupted version is in memory.

예를 들어, regsvr32 icwdial.dll을 입력하면 Icwdial.dll 파일이 자동 등록 파일이 아니기 때문에 이 오류 메시지가 나타납니다. Dllname의 손상된 버전이 메모리에 있다고 의심되면 컴퓨터를 다시 시작하거나 파일의 원래 버전을 다시 추출해 보십시오. Windows NT를 실행 중인 경우 Microsoft Windows NT Server 4.0 Resource Kit의 Kill 또는 Pview 도구를 사용해야 할 수 있습니다 . 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
197155  고아(Orphaned) 프로세스를 종료하는 방법
OleInitialize를 실패했습니다(또는 OleUninitialize를 실패했습니다).

Regsvr32는 필요한 COM 라이브러리 함수를 호출하기 전에 COM 라이브러리를 초기화해야 하고 해당 라이브러리가 종료될 때 라이브러리의 초기화를 취소해야 합니다. 이러한 오류 메시지는 COM 라이브러리의 초기화나 초기화 취소가 실패할 경우 발생합니다. 예를 들어, Ole32.dll 파일이 손상되었거나 잘못된 버전일 수 있습니다. 

LoadLibrary("Dllname")를 실패했습니다. GetlastError가 0x00000485을(를) 반환했습니다.

Winerror.h에서 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND)은 "이 응용 프로그램을 실행하는 데 필요한 라이브러리 파일 중 하나를 찾을 수 없습니다."라는 의미입니다. 예를 들어, regsvr32 missing.dll을 입력하면 Missing.dll 파일을 찾을 수 없기 때문에 이 오류 메시지가 반환됩니다. 

LoadLibrary("Dllname")를 실패했습니다. GetLastError가 0x00000002을(를) 반환했습니다.

Winerror.h에서 0x00000002 = 2 (ERROR_FILE_NOT_FOUND)는 "지정한 파일을 시스템에서 찾을 수 없습니다."라는 의미입니다. 즉, 종속 DLL을 찾을 수 없습니다. 예를 들어, Tapi32.dll(종속)이 누락된 상태로 regsvr32 icwdial.dll을 입력하면 이 오류 메시지가 반환됩니다. 

LoadLibrary("dskmaint.dll")를 실패했습니다. GetLastError가 0x000001f을(를) 반환했습니다.

Winerror.h에서 0x000001f = 31 (ERROR_GEN_FAILURE)은 "시스템에 부착된 장치가 작동하지 않습니다."라는 의미입니다. Win16 .dll 파일을 등록하려고 하면 이 문제가 발생할 수 있습니다. 예를 들어, regsvr32 dskmaint.dll을 입력하면 이 오류 메시지가 반환됩니다. 

Dllname의 DllRegisterServer(또는 DllUnregisterServer) 실패. 반환된 오류 코드: string

string은 Winerror.h에서 검색하십시오. 



출처 : http://support.microsoft.com/kb/249873/ko