- CVI 정보나눔(www.cvi.kr)
- 스터디
- 강좌,팁,유용한것
강좌,팁
글 수 116

까마귀 고기를 먹었는지,
시간이 지나니까 기억이 가물가물해져서 한참 헤매다가 해결한 후,
메모를 남깁니다.
CVI에서 ActiveX 컨트롤 사용하기
1. 그림 순서대로 ActiveX Controller 설정을 하고, UIR 상에 ActiveX 컨트롤을 추가합니다.
2. CA_InitActiveXThreadStyleForCurrentThread() 함수를 아래와 같이 추가합니다. (테스트에 이용된 actMBSTB.ocx의 경우에는 없어도 별 문제는 없는 것 같더군요.)
CA_InitActiveXThreadStyleForCurrentThread (0, COINIT_APARTMENTTHREADED);
3. LoadPanel() 함수 실행 후에, 아래와 같이 ActiveX Control의 Handle을 얻어옵니다.
(반드시 LoadPanel() 함수 후에 와야합니다. 그보다 앞에 아래의 함수를 두었다가 한참 헤맸습니다.)
GetObjHandleFromActiveXCtrl (panelHandle, PANEL_ACTMBSTB, &hMBSTB);
4. 이제 ActiveX에서 제공하는 함수를 위에서 얻은 Handle을 이용하여 사용합니다.
P.S.
TechForU 테크포유에서 한국전기연구원의 의뢰로 제작한 이미지센서 처리를 위한 DSP 보드(USB로 통신)의 장치드라이버를 이용하면서 정리하였습니다. DSP 등의 하드웨어 제작이 필요하시면, 테크포유를 기억해 주세요.
Tel: 02-2081-1181, E-mail: mindescape@techforu.co.kr, www.techforu.co.kr
-허창원
허창원
3번 단계에서 얻은 hMBSTB를
ActiveX 각 함수를 호출할 때 꼭 이용하게 됩니다. 예를 들어 아래와 같이 말입니다. 아래의 예는 테크포유의 actMBSTB.ocx 에 대한 예이고, 다른 ActiveX는 다른 함수들을 갖습니다.
ACTMBSTBLib__DActMBSTBopenDevice (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBcloseDevice (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBchkConnect (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBtestData (hMBSTB, NULL, data, &iniset.retLong);
그럼, 좋은 하루되시기를...
ActiveX 각 함수를 호출할 때 꼭 이용하게 됩니다. 예를 들어 아래와 같이 말입니다. 아래의 예는 테크포유의 actMBSTB.ocx 에 대한 예이고, 다른 ActiveX는 다른 함수들을 갖습니다.
ACTMBSTBLib__DActMBSTBopenDevice (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBcloseDevice (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBchkConnect (hMBSTB, NULL, &iniset.retLong);
ACTMBSTBLib__DActMBSTBtestData (hMBSTB, NULL, data, &iniset.retLong);
그럼, 좋은 하루되시기를...