사실 필자의 팁을 보면 regsvr32 filename.dll 이라는 명령을 자주 사용한다. 그 이유는 DLL이나 OCX 중에는 DLL 자체에 관련된 정보(CLISD등)을 레지스트리에 등록하는 기능을 가지고 있는 파일이 있고 이런 자체 정보가 정상적으로 레지스트리에 등록되어 있지 않으면 시스템이 오동작할 수 있기때문이다. 이러한 파일들은 내부적으로 DLLCanUnloadNow, DLLGetClassObject, DLLRegisterServer, DLLUnregisterServer라는 4개의 함수를 포함하고 있다.
만약 이와 같은 기능을 가지고 있지 않은 DLL를 등록하기위해 Regsvr32 명령을 사용하면 그림처럼 DLL을 로드했지만 DLLRegisterServer 진입점을 찾을 수 없다는 오류 메시지가 나타난다.
사용자에따라 차이는 있겠지만 DLL을 레지스트리에 등록하는 경우는 자주 발생한다. 특히 수동 설치를 즐기는 사람의 경우에는 빈번하게 사용하는 기능이 DLL의 레지스트리 등록이다. 따라서 이번팁에서는 1. 마우스 우측 메뉴에 DLL 등록/DLL 해제라는 두개의 메뉴를 추가하고 2. DLL이 등록/해제 가능한 DLL인지 검사한 후 DLL 등록/해제하는 팁을 설명하겠다.
댓글: