"cpp/win32/레지스트리 등록"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2017년 7월 3일 (월) 11:39 기준 최신판
- CPP > Win32 APIcpp/win32/api (6)
- CPP > Win32 > Firewal(방화벽)cpp/win32/firewal
- CPP > Win32 > Internet 신뢰 사이트cpp/win32/internet trust zone
- CPP > Win32 > UAC 확인cpp/win32/uac
- CPP > Win32 > Windows 32/64 확인cpp/win32/windows 32 64 check
- CPP > Win32 > Windows Message Codecpp/win32/windows message code (3)
- CPP > Win32 > WinINet 오류코드cpp/win32/wininet error code
- CPP > Win32 > WinINet(HTTP)cpp/win32/wininet http
- CPP > win32 > 레지스트리 등록cpp/win32/레지스트리 등록
- CPP > win32 > 프로세스 파일 경로cpp/win32/프로세스 파일 경로
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;
}