20141001 (C++ inline, 비디오 처리)

150일차









-----------

C++

-----------




------- inline

함수를 호출시 오버헤드가 적게 발생하게 하는 역할



--- 오버헤드

작업을 할 때 부수적으로 꼭 해야할 일

함수가 매크로보다 오버헤드가 많이 발생하기 때문에

예전 개발자들은 많은 함수를 매크로로 작성하여 사용했다고 한다.

C++에서는 이런 매크로를 최대 줄이려고 그와 비슷한 역할을 하는

inline이 있다.





- 참고로 최적화에 불합리한 코드가 있을 시, 최적화 하지 않는다.

- 분할 컴파일 시 헤더파일에 선언해 줄 것.






(공유 폴더 설정)






mount -t vboxsf (공유디렉토리이름) /mnt/(디렉토리)

ex) mount -t vboxsf linux_to_windows /mnt/windows


안되면 $sudo apt-get install virtualbox-* 하고 다시 시디에 내용 설치.














-------------

비디오 처리

-------------


http://zzoyu.tistory.com/51 에서 퍼옴



코딩하기

1. VFW 라이브러리 추가하기

 라이브러리를 추가하는 방법은 두가지입니다. 하나는 소스 상단에 #pragma comment( lib, "vfw32.lib" )를 추가해 주는 것이고, 다른 하나는 프로젝트 링커 옵션에 추가하는 것입니다. VS2010에서 pragma를 쓰지 않고 라이브러리를 추가하는 법은 아래와 같습니다. 영문판 VS2010이기 때문에 한글판과 이름 등에 차이가 있을 수 있습니다. 굳이 vfw가 아니더라도, 모든 라이브러리가 같은 방법을 사용하니 참고하시기 바랍니다.




우선 vfw.h를 인클루드합니다.




프로젝트폴더 위에서 오른쪽 마우스를 클릭해 메뉴를 연 뒤, Properties 메뉴를 엽니다.




Linker->Input을 선택합니다.




Additional Dependencies의 라이브러리 목록을 클릭하면 ▼버튼이 생기는데, 이를 클릭합니다.




vfw32.lib를 추가합니다.



이건 프로젝트에 설정하는 경우이므로 만약 소스만 사용할 경우

매번 추가해 줘야 하므로 소스에서 lib를 추가하는 방법.


#include  밑에 추가


//lib를 소스에서 직접 추가 소스

//windows에서만 가능

#pragma comment (lib, "Vfw32.lib")




빌드에 성공했습니다.



2. WM_CREATE에서 설정하기



우선 캡쳐 윈도우 핸들을 생성하여 저장합니다.




웹캠과 연결하는 함수를 호출합니다.




이미지를 갱신하는 속도를 지정합니다.




비디오 포맷에 대한 정보를 biVFW 변수에 저장합니다.




직접 설정하면 번거롭기 때문에 기존 값에서 필요한 값만 수정합니다.




수정된 값을 반영합니다.




미리보기를 할 수 있게 해줍니다.





설정

트랙백

댓글