C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[62990] capCreateCaptureWindow를 이용한 캠제어(2개 제어)
이경준 [sulhwanuna] 2527 읽음    2010-11-10 17:02
안녕하세요

capCreateCaptureWindow를 이용해서 캠제어하는데..

한개만 다이얼로그창에 "띄우는건 별문제가 되질 않는데

두개를 띄우는게 좀 안되네요...

이작업을 3일째 하고있는데 ㅠㅠ


제가 알아본결과 :

1. 두개의 캠을 다른 회사의 것으로 사용 (사용중)

2. usb포트를 pc의 앞 뒤로 꼽는다 (o k)

3.
m_Nhandle1 = capCreateCaptureWindow("cap window", WS_CHILD|WS_VISIBLE,20,20,400,400,this->m_hWnd,0);

    capDriverConnect(m_Nhandle1, 0);   << 두번째 인자값이 디바이스 인덱스라고 하더군요

    capPreviewRate(m_Nhandle1, 30);

    capPreview(m_Nhandle1, TRUE);

   m_Nhandle2 = capCreateCaptureWindow("cap window", WS_CHILD|WS_VISIBLE,430,20,400,400,this->m_hWnd,0);

    capDriverConnect(m_Nhandle2, 1);   << 0이 아닌 1로..

    capPreviewRate(m_Nhandle2, 30);

    capPreview(m_Nhandle2, TRUE);



    이런식으로 해봐도 capDriverConnect(m_Nhandle1, 0); 는 영상이 잘 나옵니다만

    capDriverConnect(m_Nhandle2, 1); 는 검은화면만 나타납니다.

    m_Nhandle1의 인덱스값을 1로, m_Nhandle2의 인덱스값을 0으로해도 인덱스 값이 0인 쪽에서만 동작을합니다

    이는 곧 나오는 캠만 계속 나온다는 소리입니다..

    캠 한개를 장치관리자에서 미사용으로 하고 다시 사용으로하면 이렇게 변경한 캠이 인덱스 1이 되고 다른한개의

    인덱스값이 0이 되며(예상) 그것만 동작이 됩니다


4. 디바이스를 못찾나해서

     capGetDriverDescription(  WORD wDriverIndex,  <<<< 0~9번까지
                                      LPSTR lpszName,    
                                      INT cbName,        
                                      LPSTR lpszVer,     
                                      INT cbVer    ) ;

    으로 찾아본결과   0번은 찾는데  1~9번은 찾지를못합니다

     어느 블로그에서는 system.ini 에 인덱스가 있다고 나온다고

    찾아봤는데 0번 조차 찾을수 없었습니다 (캠 디바이스를 설치한 다른 pc)에서도..

    하지만, 다이얼로그에서 말고 그냥 캠을 동작시켰을땐 두 캠 모두 동시에 동작이 됩니다...

혹시
   m_Nhandle1 = capCreateCaptureWindow("cap window", WS_CHILD|WS_VISIBLE,20,20,400,400,this->m_hWnd,0);

에서 this->m_hWnd를 다른걸로 바꾸면 될까요?

한개가 동작하면 다른걸 동작시키려고할때 사용중이라 안되는것 같기도....(이건제 문법이 좀 야게서..ㅠㅠ)

바꿔보고 싶지만 어떻게 바꿔야 할지 잘 몰라서 망설이고 있습니다 ㅠㅠ







도와주세요...죽겠습니다..ㅠㅠ



ps.사용툴은 visual C++6.0 이구요



    DirectShow 사용하라는 답변을 많이 봤는데 이건 재껴두고 답변해주시면 감사하겠습니다 ㅠ_ㅠ;;

+ -

관련 글 리스트
62990 capCreateCaptureWindow를 이용한 캠제어(2개 제어) 이경준 2527 2010/11/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.