: : 안녕하세요.
: : 여기 게시판을 통해 자주 큰 도움을 얻고있습니다. 고맙다는 인사를 먼저 드리며...
: :
: : ocx 파일들이 새로 설치될 때, 레지스트리에 관련된 정보들이 HKEY_CLASSES_ROOT\CLSID아래에 등록이되는거 같드라구요.
: : 제가 짠 프로그램을 배포하려고 하는데 OCX 파일도 같이 배포를 해야하는데, OCX 파일에 관련된 정보를 레지스트리에 어떻게 등록시켜주나요? 윈도우즈 API가 있는지 궁금합니다.
: :
: : 빌더와는 직접적인 관련이 없는 질문인데...여기 이런 질문이 적합하지 않으시면 임프님이 임의로 삭제하셔되 됩니다.
: :
: : 읽어주셔서 감사합니다.
:
:
: 임펠리테리입니다.
:
: 먼저.. 도움이 많이 된다니 기쁘네요. 그리고, 이 내용은 빌더와 "직접" 관련이 있는 건 아니지만,
: 빌더 프로그래머들이 많이들 겪는 문제이니까 좋습니다. 질문답변 게시판은 좀더 광범위하게 사용하셔도
: 좋습니다.
:
: ocx를 레지스트리에 등록하는 것은, 물론 레지스트리에 직접 써넣는 방법도 있겠지만... MS에서 이 내용을
: 공개하지 않은 이상 윈도우즈의 다음 버전들에서 얼마든지 달라질 수 있습니다. 키 이름이 달라진다든지...
: 그런 식으로요.
:
: ocx를 등록하는 좀더 일반적이고 안정적인 방법은 윈도우즈에서 제공하는 유틸리티인 regsvr32를 쓰는 것입니다.
: regsvr32 ocx파일이름
: 이렇게 실행해주면 됩니다.
: 언인스톨하려면,
: regsvr32 ocx파일이름 /u
:
: 빌더에도 포함되어 있는 tregsvr.exe를 쓰셔도 됩니다만 설치하려는 모든 컴퓨터에 이 유틸이 있을거라고
: 장담할 수 없으니까요.
:
: API를 사용해서 코딩으로 등록할 수도 있습니다만, ocx 등록은 배포하는 프로그램을 설치할 때 딱 한번만
: 하는 것이 일반적이므로 그것때문에 코드를 더 늘릴 필요는 없겠지요.
:
: 그럼 참고하시길...
먼저 임프님의 답변에 감사드립니다.
요즘은 매일 여기 들러서 많이 배우고갑니다.
아직 아는게 짧아서 배우고만 가지만...언젠가 저도 다른 분들을 도울 수 있는 날이 오길 바랍니다.
참고로 제가 웹을 좀 뒤져보니깐 ocx 등록할 때 주의사항이 있는데 다음과 같습니다.
1. 관련 ocx가 이미 레지스트리에 등록되었는 지를 검사해볼것.
2. 윈도우즈 시스템 디렉토리에 5개의 dll들이 모두 있어야한다고 하네요.
mfc30.dll olepro32.dll msvcrt20.dll mfc40.dll msvcrt40.dll
만일 위 2가지 조건을 만족시키지 못하면 다음과 같은(혹은 유사한) 오류가 난다고 합니다.
"Error: OLE Error Code 0x80040112: Appropriate license for this class not found."
그리고 ocx등록은 임프님 말대로 프로그램 설치할 때 딱 한번만 해주면 되므로 많은 사람들이 InstallShield 같은 설치프로그램에서 등록을 해줍니다.
참고로 InstallShield에서 ocx를 등록시켜주기 위해서는 FileGroup의 프로퍼티중 SelfRegistered를 true로 설정해주시면 됩니다.
|