DLL이나 OCX를 레지스트리에 등록하거나 제거..
regsvr32를 이용한다..
예)
regsvr32 "C:ProjectNeoTest 2.60_Output_Debugeoweboardax.ocx"
regsvr32 /u "C:ProjectNeoTest 2.60_Output_Debugeoweboardax.ocx"
regsvr32 /s "C:ProjectNeoTest 2.60_Output_Debugeoweboardax.ocx"
regsvr32 /s /u "C:ProjectNeoTest 2.60_Output_Debugeoweboardax.ocx"
regsvr32 /s /c "C:ProjectNeoTest 2.60_Output_Debugeoweboardax.ocx"
/u : Unregister
/s : Silent
/c : Console output
regsvr32는 DLL이나 OCX를 호출하고, DLL내부의 DllRegisterServer()과 DllUnregisterServer()을 호출하는 역할을 한다.
만약 regsvr32를 사용하지 않고 직접 등록하려면 다음과 같이 할 수 있다..(Devpia 참고..)
// Usage
AfxMessageBox( RegFunc("MsComm.ocx") );
CString RegFunc(LPCTSTR lpOCXName)
{
CString systemDir = _T("");
CString FindFileName = _T("");
::GetSystemDirectory( systemDir.GetBuffer(255), 255);
FindFileName.Format("%s\%s", systemDir, lpOCXName);
HINSTANCE h = ::LoadLibrary(FindFileName);
if (h != NULL) {
FARPROC pFunc = ::GetProcAddress(h,"DllRegisterServer");
if (pFunc != NULL)
{
(*pFunc)();
} else {
FindFileName.Format("%s 등록 실패 되었읍니다.", lpDiscript);
return FindFileName;
}
::FreeLibrary(h);
FindFileName.Format("%s 등록 되었읍니다.", lpDiscript);
return FindFileName;
} else {
FindFileName.Format("%s 등록 실패 되었읍니다.", lpDiscript);
return FindFileName;
}
}
출처: http://ninvu.egloos.com/1936098
반응형
'IT-개발,DB' 카테고리의 다른 글
[VC#] C++로 만든 DLL 을 C#에서 사용하기 (0) | 2010.09.10 |
---|---|
[Win32] ActiveX 컨트롤 등록 (0) | 2010.09.08 |
[MFC/Win] ActiveX killbit, 사용안함 처리 (0) | 2010.09.07 |
[VC++/IE] 툴밴드(Tool Band)란? (0) | 2010.09.07 |
[개발] Internet Explorer에서 ActiveX 컨트롤 실행을 중지하는 방법 (0) | 2010.09.02 |
댓글