본문 바로가기
프로그래밍/C++

MFC Active X 컨트롤 제작

by 건우아빠유리남편 2010. 1. 19.
반응형
런타임 라이센스
새 프로젝트로 MFC Active X를 생성하면 옵션 설정에서 런타임 라이센스(.lic)를 포함해서 프로젝트를 생성 할 수 있습니다. 이후 cab파일을 작성 할때, 반드시 이 lic파일을 포함해서 압축/배포 해야 합니다. ocx파일의 특성은 아시다시피, 아무나 가져다가 쓸 수 있다라는 것 입니다. 이 lic파일이 그것을 방지해주는 역활을 합니다. 배포버전에는 반드시 포함하는게 좋을 듯 싶습니다.

디버깅 및 실행 테스트
처음에 가장 궁금했던 것이 바로 생성한 ocx를 어떻게 디버깅하고 실행 테스트를 하는가? 였습니다. 일단 가장 확실한것은 cab파일로 만든 후, 테스트 웹 페이지를 생성해서 직접 테스트 하는 방법 입니다만, 매우 번거롭습니다. 디버깅도 할 수 없구요. 여기에 두가지 쉬운 방법이 있습니다. 빌드 후에 2003기준으로 "프로젝트 속성 > 디버깅 > 작업 > 명령" 에서 Active X Control Container로 설정하면, 디버깅용 프로그램이 실행 됩니다. 또는 해당 위치에서 "익스플로러"로 지정하고, "명령인수"에 테스트용 웹페이지의 총 경로를 적어줘도 디버깅이 가능 합니다.

웹에서의 접근
내가 작성한 Active X 컨트롤에는 웹에서 어떻게 접근 할 수 있는가? 정답은 바로 메서드 입니다. 프로젝트를 생성하고 클래스 뷰에 "(컨트롤이름)Lib" 라는 항목이 생성되어있습니다. 이 곳에 메서드를 추가 할 수 있습니다. 메서드를 추가하면, 웹에서 자바스크립트등을 통해서 Active X 컨트롤의 메서드를 호출 할 수 있습니다.

cab 압축 하기
http://rnd.vitzro.com/language/VisualC/MakeCab.htm 여기에서 참고 했습니다.
위의 방법 말고도, VS의 배포 프로젝트를 이용해서 cab파일을 생성 할 수 있습니다. Active X 컨트롤 프로젝트에 추가 해서 작성하면, 빌드 올 명령으로 cab파일은 물론 서명/인증서 작업까지 한번에 끝낼 수 있습니다. cab파일을 작성할때 필요한 inf파일 정보라던가 테스트용 서명, 인증서에 대한 내용은 위의 사이트를 참고 하시면 될 것 같습니다.
정식 인증서와 관련해서는 이 곳을 참고해보세요. 저는 뭐 이미 회사에 인증서가 존재해서 관련 작업은 해보지 못했습니다.

컨트롤의 업데이트
아직 테스트 전입니다만, Active X 컨트롤의 버전업은, 리소스내부의 버전 스트링의 수정 만으로 자동으로 이루어진다고 합니다. 즉 서버와 클라이언트간의 버전이 틀리면 익스플로러가 알아서 신버전을 다운받아준다고 합니다. 물론 inf파일과 오브젝트태그의 내용도 변경 시켜줘야 합니다.
반응형

댓글