본문 바로가기
My/works

ActiveX(액티브엑스) 만들기 cab 배포하기

by matt131 2013. 1. 6.
반응형

간단한 ActiveX를 만들어서 배포하려는데

ActiveX 는 점차 사장되어가는 상황이다보니 자료도 거의 옛날 자료 뿐이어서(액티브엑스 제작 및 배포), 
많은 어려움이 있었다.

제작했던 과정들을 기억하지는 의미에서 필요한 것만 간단요약한다. 순서기억용

 

 

 

1. ActiveX 프로젝트를 통해 ocx 파일을 추출한다.

visual studio 6.0은 윈도우7(익스플로어9.0)과 호환되지 않으니 visual studio2008을 추천.

컴파일 시 정적라이브러리에서 MFC 사용으로 변경하는 것을 추천. ocx파일 사이즈가 커지긴 하지만 추가 파일이 불필요,

공유 DLL에서 MFC 사용으로 컴파일 할 경우 visual studio2008 재배포 배키지, 추가 종속되는 dll 을 cab파일에 포함시켜야 한다.

 

 

 

2. inf 파일을 작성한다.

ActiveX 파일(.cab)를 만들기 위해서는 ocx파일(혹은관련dll)과 inf파일이 필수로 있어야한다.

inf파일 작성법은 대략 이런식이다.

 

 Sample.inf

 [version]
signature="$CHICAGO$"
AdvancedINF=2.0

 

[Add.Code]
Sample.ocx=Sample.ocx

 

[Sample.ocx]
file-win32-x86=thiscab
clsid={448B0F40-D8CF-468B-A29D-E5827B75ADBD}
FileVersion=1,0,0,1

DestDir=11
RegisterServer=yes

 

inf 파일 작성법은 인터넷 검색으로 많이 찾을 수 있으니 참고하시기 바란다.

 

 

3. Cab 파일 만들기

 

3-1. Cab 으로 압축하는 파일 및 인증서 제작 관련 파일이 들어있는 하단의 첨부 파일(ActiveXSign)을 다운받는다.

 

ActiveXSign.zip

 

요즘은 알집에서도 Cab파일 제작이 가능하다고 하니 알집으로 하셔도 될듯하다.

다운받은 ActiveXSign.zip 파일의 압축을 풀어보면

CABARC.exe 라는 파일이 있다. 이 파일이 cab 제작가능 파일이다.

 

3-2. 커맨드창에서 (cmd.exe) CABARC.exe 파일과 ocx, inf 파일이 있는 경로로 이동한 후 명령어를 입력한다.

 

 C:>CABARC N Sample.cab Sample.ocx Sample.inf

 

이런식으로 입력하면 Sample.ocx Sample.inf 파일이 들어있는 Sample.cab이라는 파일이 생성되는 것을 확인할 수 있다.

 

정상적인 배포를 위해서는 인증서를 구입해서 Cab파일에 인증서 서명을 하여야 하나

테스트 배포이므로 인증서 서명은 생략한다.

검색해보면 테스트 인증서를 생성하며 서명하는 방법이 많이 나와있으나

경험에 의하면 테스트 인증서를 서명하여 배포한 것이나, 서명하지 않은것이나 별반 차이가 없었다.

오랜된 자료여서 그럴수 있다는 생각?

 

 

 

4. Cab 파일 배포하기

간단한 html파일을 만들어서 액티브엑스 배포 테스트를 해보자.

 

 <html>
<head>
<title>title</title>
</head>
<body>
<object classid="CLSID:448B0F40-D8CF-468B-A29D-E5827B75ADBD" codebase="http://www.url.co.kr/Sample.cab#version=1,0,0,1" width="100" height="100" id="test">
</object>
</body>
</html>

 

상단 예제 소스의 <object></object> 부분이 cab 파일 설치 및 실행 부분이다.

주의할 점은 codebase의 cab 파일 경로는 관리자가 배포할 cab파일의 경로로 지정해야 한다는 것이다.

로컬로 테스트 하려면 cab파일의 로컬 경로를 써주면 된다.

 

여기까지가 ActiveX의 제작 및 배포 과정이다.

 

 

 

만약 cab 파일 설치가 잘 되지 않으면?

이전에 작성한 링크 포스팅을 참고하시길

 

ActiveX 액티브엑스 설치 안될 경우 해결방안 (cab 배포 실패)

 

 

반응형