Program Club

DLL 등록은 무엇을합니까?

proclub 2020. 12. 9. 20:52
반응형

DLL 등록은 무엇을합니까?


나는 dll을 등록하는 방법을 알고 있지만, 왜 내가 dll을 등록해야하는지 또는 어떤 조건에서 dll을 등록해야하는지에 대해서는 확신하지 못했습니다. 누군가 설명하거나 문서를 알려줄 수 있습니까?


DLL이 등록되면 DLL의 DllRegisterServer메소드 진입 점이 호출됩니다. 마찬가지로 DllUnregisterServerDLL이 등록 취소 될 때 호출됩니다.

이 MSDN 문서에 설명 된대로 :

In-process 서버에이 서버 모듈에서 지원되는 모든 클래스에 대한 레지스트리 항목을 만들도록 지시합니다. 이 함수가 실패하면 모든 클래스에 대한 레지스트리 상태가 불확실합니다.

COM DLL의 경우 적절한 등록 / 등록 취소를 수행하는 자체 DllRegisterServerDllUnregisterServer진입 점 메서드 를 구현해야합니다 . 에 대한 예제 코드는 여기DllRegisterServer 에서 찾을 수 있습니다 .

DLL 등록의 최종 결과는 DLL의 구성 요소에 대한 모든 CLSID가 HKEY_CLASSES_ROOT\CLSID. 이를 통해 CoCreateInstance다른 DLL 또는 응용 프로그램에서 COM 개체를 인스턴스화 할 때 올바른 서버를 찾을 수 있습니다 .

DllUnregisterServer반대로 수행하고 .NET에 의해 거기에 넣은 레지스트리에서 모든 CLSID를 제거합니다 DllRegisterServer.

보다 일반적인 정보는 여기DllRegisterServer 에서 찾을 수 있습니다 .


가장 일반적으로 DLL 등록이라고하는 것은 COM 개체를 구현할 때입니다. regsvr32는 개체의 인스턴스를 만들 수 있도록합니다. 예를 들어 VBScript가 New 또는 CreateObject ()를 사용하는 경우 등록은 COM이 이름 또는 CLSID로 새 인스턴스를 만들기 위해로드 할 DLL을 알고 있는지 확인합니다.

(매우) 간단한 요약 "평신도의 설명"참조하십시오 .


regsvr32.exe의 소스 코드를 참조하십시오.

참고 URL : https://stackoverflow.com/questions/620858/what-does-registering-a-dll-do

반응형