다음 코드를 사용하려고했습니다.
cd c:\windows\system32
regsvr32.exe dllname.ax
그러나 이것은 나를 위해 작동하지 않습니다. 64 비트 프로세서가있는 Windows 7에서 DLL 파일을 등록하려면 어떻게해야합니까?
다음 코드를 사용하려고했습니다.
cd c:\windows\system32
regsvr32.exe dllname.ax
그러나 이것은 나를 위해 작동하지 않습니다. 64 비트 프로세서가있는 Windows 7에서 DLL 파일을 등록하려면 어떻게해야합니까?
답변:
32 비트 또는 64 비트 dll인지 지정하지 않고 오류 메시지를 포함하지 않지만이 KB 문서 : Regsvr32.exe를 실행할 때 발생하는 오류 메시지에 설명 된 것과 동일한 문제라고 생각합니다. 64 비트 Windows
그 기사에서 인용 :
System32 폴더의 Regsvr32.exe 파일이 64 비트 버전이기 때문에이 문제가 발생합니다. Regsvr32를 실행하여 DLL을 등록하면 기본적으로 64 비트 버전을 사용하게됩니다.
해당 기사의 솔루션 :
이 문제를 해결하려면 % SystemRoot % \ Syswow64 폴더에서 Regsvr32.exe를 실행하십시오. 예를 들어 다음 명령을 입력하여 DLL을 등록합니다.
cd \windows\syswow64
regsvr32 c:\filename.dll
DLL이 32 비트 인 경우 :
\ WINDOWS \ SysWOW64와 \ C에 DLL을 복사
에서 상승 프롬프트 명령 :%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
DLL이 64 비트 인 경우 :
\ WINDOWS \ SYSTEM32 \ C에 DLL을 복사
에서 상승 프롬프트 명령 :%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
나는 그것이 잘못된 방향으로 보이는 것을 알고 있지만 그것이 작동하는 방식입니다. 보다:
http://support.microsoft.com/kb/249873
인용구 : "참고 Windows 운영 체제
의 64 비트 버전 에는 Regsv32.exe 파일의 두 가지 버전이 있습니다. 64 비트 버전은 % systemroot % \입니다. System32 \ regsvr32.exe.
32 비트 버전은 % systemroot % \ SysWoW64 \ regsvr32.exe입니다.
"
x64 시스템에서 system32는 64 비트 용이고 syswow64는 32 비트 용입니다 (다른 답변에 명시된 것과는 반대로). WOW (Windows on Windows)는 64 비트 하위 시스템에서 실행되는 32 비트 하위 시스템입니다.
이름 지정 용어가 엉망이고 혼란 스러울뿐입니다.
다시 ...
syswow64는 64 비트가 아닌 32 비트입니다.
system32는 32 비트가 아니라 64 비트입니다.
이러한 각 디렉토리에는 regsrv32가 있습니다. 하나는 64 비트이고 다른 하나는 32 비트입니다. odbcad32 및 et al과 동일한 거래입니다. ( 64 비트 인 system32에서 기본 odbcad32와 함께 표시되지 않는 32 비트 ODBC 드라이버 를 보려면 )
regsvr32
당신은 32 비트 또는 64 비트 DLL을 등록 여부 등 세부 사항에 대해 처리됩니다, 이론적으로는 감지 : stackoverflow.com/questions/18935163/...
시작 메뉴를 열고 검색 상자에 cmd를 입력합니다. Ctrl + Shift를 누른 상태에서 Enter 키를 누릅니다.
관리자 모드에서 명령 프롬프트를 실행합니다.
이제 다음을 입력하십시오. regsvr32 MyComobject.dll
마지막으로 솔루션이 CMD를 관리자 권한으로 실행 한 다음
cd \windows\syswow64
그런 다음 이것을 쓰십시오
regsvr32 c:\filename.dll
그 대답이 당신을 도울 수 있기를 바랍니다.
오류 메시지를 아는 것이 다소 중요합니다. 그것은 정보를 제공하기위한 것입니다. 비록 그것이 당신에게 이해가되지 않더라도 그것이 우리에게하는 일입니다. 추측 할 수밖에없는 DLL은 32 비트 DirectX 필터라고 말하고 싶습니다. 이 경우 적절한 조치를 취해야합니다.
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
UAC가 필요한 레지스트리 액세스를 중지 할 수 없도록 관리자 권한 명령 프롬프트에서 실행해야합니다. superuser.com에서 이에 대한 추가 질문을하십시오.
방금이 매우 간단한 방법을 테스트 했으며 완벽하게 작동하지만 기본 제공 관리자 계정을 사용하므로 권한 상승을 위해 험난한 작업을 수행 할 필요가 없습니다.
다음 배치 파일은 사용자가 시스템 폴더 안팎으로 파일을 이동할 필요를 덜어줍니다. 또한 적절한 버전을 적용하기 위해 Windows에 맡깁니다.Regsvr32
.
명령:
등록하려는 라이브러리 ( -.dll
또는 -.ax
) 파일 이 포함 된 폴더 에서 새 텍스트 파일을 열고 아래 루틴 중 하나에 붙여 넣으십시오.
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
copy %1 C:\Windows\System32
regsvr32 "%nx1"
echo END BATCH FILE
pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
copy %1 C:\Windows\SysWOW64
regsvr32 "%nx1"
echo END BATCH FILE
pause
새 텍스트 파일을 배치 ( -.bat
) 파일 로 저장합니다 . 그런 다음 -.dll
또는 -.ax
파일을 배치 파일 위에 끌어다 놓습니다 .
UAC가 관리자로 배치 파일을 실행할 기회를 제공하지 않는 경우 권한을 수동으로 높여야 할 수 있습니다 (지침은 Windows 7 용임).
Create shortcut
;Properties
;Compatibility
탭을 하십시오.Run this program as administrator
.-.dll
또는 -.ax
파일을 끌어다 놓습니다 .그게 다야 . COPY
대신 MOVE
UAC 관련 후속 시도의 실패를 방지 하기로 선택했습니다 . 성공적으로 등록한 다음 원본 라이브러리 ( -.dll
또는 ) 파일 을 삭제해야 -.ax
합니다.
이전 패스에 의해 시스템 폴더 ( C:\Windows\System32
또는 ) 에 복사 된 복사본에 대해 걱정하지 마십시오C:\Windows\SysWOW64
. 배치 파일을 실행할 때마다 덮어 쓰게됩니다.
잘못된 배치 파일을 실행하지 않는 한 , 적절한 배치 파일을 실행하기 전에 잘못된 시스템 폴더 ( C:\Windows\System32
또는 C:\Windows\SysWOW64
)에 만들어진 복사본을 삭제하고 싶을 것입니다 .
디렉터리 위치를 완전히 지정하여 Windows가 등록 할 올바른 라이브러리 파일을 선택하도록 도와주세요.
C:\Windows\System32
C:\Windows\SysWOW64
%nx1
regsvr32 "C:\Windows\System32\%nx1"
regsvr32 "C:\Windows\SysWOW64\%nx1"
%nx1
시스템 폴더 경로 와 분리 되도록 백 슬래시 삽입이 Shotgun 배치 파일을 실행하면 다음 작업이 수행됩니다 (순서대로).
C:\Windows\System32
.C:\Windows\System32
.C:\Windows\SystemWOW64
Run as administrator
박쥐 파일에 대한 바로 가기를 만들 때 회색으로 표시됩니다. 관리자로 로그인했습니다. 또한, %nx1
또는 %n1
?
관리자가하는로 윈도우 7 로깅의 차이가 되지는 . 관리자로 로그온하면 관리자로 프로그램을 실행할 때와 동일한 권한이 부여 .
시작-모든 프로그램-액세서리로 이동합니다. 명령 창을 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"을 선택하십시오. 이제 다음을 통해 dll을 정상적으로 등록하십시오. regsrvr32 xxx.dll
이 작업을 수행하는 동안 오류 코드 0x80040201이 표시되면 오류 코드 0x80040201로 실패한 DllRegisterServer 의 해결 방법을 시도해보십시오. 하지만 관리자 권한으로 실행 명령 프롬프트를 열 었는지 확인하십시오 .
regsvr32와 관련된 혼란의 일부는 64 비트 창에서 이름과 경로가 변경되지 않았지만 이제 64 비트 DLL을 등록한다는 것입니다. 32 비트 regsvr32는 64 비트 응용 프로그램을 나타내는 이름 인 SysWOW64에 있습니다. 그러나 이름에서 WOW64는 Windows 64의 Windows 또는 Windows 64 비트의 Windows 32 비트를 의미합니다. 이런 식으로 생각하면 이름은이 문맥에서 혼란 스럽지만 의미가 있습니다.
MSDN 블로그에서 원본 소스를 찾을 수 없지만이 Wikipedia 기사 http://en.wikipedia.org/wiki/WoW64 에서 참조됩니다 .
Win7 x64 컴퓨터에서이 문제를 해결하는 방법은 다음과 같습니다.
"CoCreateInstance () 실패 Plkease 레지스트리 항목 CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3}를 확인하고 관리자로 로그인했는지 확인하십시오."
도움이 되었기를 바랍니다 !
regsvr32
DLL이 함수DllRegisterServer
및DllUnregisterServer
. 생성하는 대부분의 DLL은 등록하지 않습니다.