소프트웨어 녹화 등록 DLL
DLL을 등록하려면 regsvr32 명령이 필요합니다. 구체적인 도움말은regsvr32/?
DLL을 등록하는 데 어떤 문제가 발생했습니까?레지스트리 HKEYLOCAL_MACHINE\SOFTWARE\Classes\CLSID\, 그럼 HKEYLOCAL_MACHINE\SOFTWARE\Classes\CLSID\밑에 있는 모든 게 DLL이네요.
아니, SVN의 클라이언트 도구인 Tortoise SVN을 설치하면 전혀 그렇지 않다는 것을 알 수 있다.Tortoise SVN은 많은 Common Files\Tortoise Overlays 아래의 그림도 HKEYLOCAL_MACHINE\SOFTWARE\Classes\CLSID\, 그런데 이 두 가지는 등록표에서 어떤 차이가 있습니까?
차이점은 대응하는 DLL 키 밑에 InprocServer32가 많아졌다는 것이다. 그것은regsvr32를 통과하지 않아도 DLL을 등록할 수 있는 것이 아니냐는 것이다. 내가 win7에서의 실험을 통해 할 수 있다. 만약에 DLL 자신과 다른 GUID를 사용하면 성공할 수 있느냐 없느냐는 것이다. 나는 실험을 하지 않았다.
예를 들어 눌러진 DLL을 등록하면 아래의 세 개의 등록표 수정 문구가 DLL을 등록하는 임무를 완성할 수 있다. 물론 전제 조건은 DLL의 GUID를 알아야 한다는 것이다. 즉,regsvr32가 DLL을 등록하면 등록표에 세 개의 기록을 추가한 것이다.
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{5FED836A-C96C-4d88-A91E-F63F07726585" /ve /d "HaoZip Shell Extension" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{5FED836A-C96C-4d88-A91E-F63F07726585}\InprocServer32" /ve /d "%cd%\HaoZipExt.dll" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{5FED836A-C96C-4d88-A91E-F63F07726585}\InprocServer32" /v "ThreadingModel" /d "Apartment" /f
regsvr32 HaoZipExt.dll
일부 DLL 등록 후 HKEY 뿐만 아니라LOCAL_MACHINE\SOFTWARE\Classes\CLSID\, 등록표의 다른 위치를 수정할 수 있으므로 등록표 문구를 직접 사용하여 DLL을 등록하는 것을 권장하지 않습니다.
예를 들어 텐센트의 등록이 필요한 DLL은 등록표를 다음과 같은 위치로 수정할 수 있다
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\
내 분석을 통해 시스템 폴더 아래의 시스템 32에 파일을 복사하지 않았습니다. 적어도 win7에는 파일이 없습니다.현재 질문 DLL의 GUID는 등록할 때 시스템에서 생성된 것입니까?아니면 DLL 중에?
프로그램을 쓴 사람들은 모두 GUID가 DLL에서 등록할 때 생성된 것이 아니라는 것을 안다. 즉, 특정한 고정된 DLL에 대해 DLL을 다시 생성하지 않으면 GUID는 몇 번을 등록하든 바뀌지 않는다는 것이다.물론 DLL을 다시 컴파일하면 변경될 수 있습니다.
테스트를 통해 알 수 있듯이 Regsvr32를 통해 DLL을 등록하는 것은 등록표에 HKEYLOCAL_MACHINE\SOFTWARE\Classes\CLSID\아래에 등록표를 썼는데 관건은 아래에 InprocServer 32항이 추가되었다는 것이다
시스템 파일에 파일이 복사되지 않았으며 GUID는 DLL에 저장된 것이지 등록할 때 생성된 것이 아닙니다.
또한 등록해야 하는 DLL은 사실com입니다. 일부 함수를 사용하면 곳곳에서 다음과 같은 4개의 함수를 내보낼 수 있습니다. llCanUnloadNow, DllGetClassObject, DllRegisterServer, DllUnregisterServer
레지스트리에서 HKEYLOCAL_MACHINE\SOFTWARE\Classes\CLSID\아래에 상응하는 등록 정보가 있는데 관건은 HKEY 를 포함하는 것이다LOCAL_MACHINE\SOFTWARE\Classes\CLSID\DLLGUID\InprocServer32
주의: 주로 등록된 DLL은 반드시 DLL을 접미사로 하는 것이 아니라 다른 접미사를 사용할 수도 있다. 예를 들어 ocx는 매우 흔히 볼 수 있는 등록해야 하는 DLL이다. 공식적인 측면에서 볼 때 등록해야 하는 DLL은 모두COM이고 구체적으로COM 관련 자료를 조회할 수 있다.
기사는 전재를 환영하지만, 작자 정보는 보류해 주십시오.
xuexiaodong2009
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.