DLL 등록은 무엇을합니까?
나는 dll을 등록하는 방법을 알고 있지만, 왜 내가 dll을 등록해야하는지 또는 어떤 조건에서 dll을 등록해야하는지에 대해서는 확신하지 못했습니다. 누군가 설명하거나 문서를 알려줄 수 있습니까?
DLL이 등록되면 DLL의 DllRegisterServer메소드 진입 점이 호출됩니다. 마찬가지로 DllUnregisterServerDLL이 등록 취소 될 때 호출됩니다.
이 MSDN 문서에 설명 된대로 :
In-process 서버에이 서버 모듈에서 지원되는 모든 클래스에 대한 레지스트리 항목을 만들도록 지시합니다. 이 함수가 실패하면 모든 클래스에 대한 레지스트리 상태가 불확실합니다.
COM DLL의 경우 적절한 등록 / 등록 취소를 수행하는 자체 DllRegisterServer및 DllUnregisterServer진입 점 메서드 를 구현해야합니다 . 에 대한 예제 코드는 여기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
'Program Club' 카테고리의 다른 글
| Google 'Omaha'(Chrome 용 자동 업데이트 엔진)의 경험은 어떻습니까? (0) | 2020.12.09 |
|---|---|
| 높이 : 0 패딩을 숨기지 않는 이유 (0) | 2020.12.09 |
| 내 활동 중 하나가 포 그라운드에 있는지 확인하는 방법 (0) | 2020.12.09 |
| backbone.js를 배우는 가장 좋은 방법은 무엇입니까? (0) | 2020.12.09 |
| SQL 쿼리에 대한 기본 스키마 설정 (0) | 2020.12.09 |