RedJini Blog

뒤로 검색

레지스트리등록

2006/05/06 17:23

DLL, OCX 레지스트리 등록 방법.

OCX(DLL)파일 내에 선언되어있는 DllRegisterServer와 DllUnregisterServer를 호출함으로써 프로그램을 레지스트리에 등록할수 있습니다.
Install Shield와 같은 설치프로그램을 이용하면 쉽게 레지스트리에 등록가능하나 이를 이용하지 않을때 간단하게 쓸수 있는 함수 입니다.

BOOL CRegSvr32::Install(LPCSTR sPath){
       HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void);
       HINSTANCE hLib = LoadLibraryEx(sPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
       if (hLib < (HINSTANCE)HINSTANCE_ERROR) {
               INSTALL_FAIL();
       }
       (FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
       if (lpDllEntryPoint == NULL) {
               INSTALL_FAIL();
       }
       if (FAILED((*lpDllEntryPoint)())) {
               INSTALL_FAIL();
       }
       FreeLibrary(hLib);
       return TRUE;
}

BOOL CRegSvr32::UnInstall(LPCSTR sPath){
       HRESULT (STDAPICALLTYPE * lpDllEntryPoint)(void);
       HINSTANCE hLib = LoadLibraryEx(sPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
       if (hLib < (HINSTANCE)HINSTANCE_ERROR) {
               INSTALL_FAIL();
       }
       (FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllUnregisterServer");
       if (lpDllEntryPoint == NULL) {
               INSTALL_FAIL();
       }
       if (FAILED((*lpDllEntryPoint)())) {
               INSTALL_FAIL();
       }
       FreeLibrary(hLib);
       return TRUE;
}

Tags

RegSvr32, Visual C++
이 페이지는 Textcube 1.9.3 : poco a poco 로 구동됩니다 데스크탑 화면