목록MFC (30)
SPRING :: NOTE
VLC library를 이용하던 도중, Rasberry Pi에서 송신하는 RTSP 프로토콜을 받던 도중 화면이 정상적으로 동작하지 않으며, 검은화면 및 딜레이가 심하는 현상이 생김. Wi-Fi로 AP물려 테스트할 때는 정상적이었으나, Rasberry Pi를 연동하여 RF 통신모듈에서 영상을 받을 때, 이런 현상이 발생하였다. 이 문제를 가지고 하루정도 고민해봤는데 - 상용 VLC Player도 똑같은 문제점이 발생한다는 것을 확인. - 팟플레이어는 정상적인 스트리밍을 한다는것을 확인. - 팟플레이어가 정상적인것은, VLC 라이브러리도 RTSP 설정을 통해 가능하다는것을 의미하는듯. - VLC 옵션을 이것저것 살피던 도중 RTSP 옵션을 발견 - Live555 Stream Transport의 RTSP 설정..
아래의 함수를 추가하며, 파라미터 값에 VideoPicture에서 들어온 capture data를 cv::mat에 copy한다. copy된 cv::mat을 인자값으로 넣어주며, m_GstView가 Picture Controll 또는 Static Controll의 멤버변수이다. void CGStreamerExDlg::DisplayVideo(Mat frame) { // m_CamMinX, m_CamMinY, m_CamMaxX, m_CamMaxY, //화면에 보여주기 위한 처리입니다. int bpp = 8 * frame.elemSize(); assert((bpp == 8 || bpp == 24 || bpp == 32)); int padding = 0; //32 bit image is always DWORD a..
어떤 클래스에서든지 메인 프레임을 종료할 수 있다. AfxGetMainWnd()->PostMessageA(WM_CLOSE);단, 이 이벤트 후에 다른 코드를 넣으면 안된다.
FTP 소스를 찾아보던 중 우리나라 한 개발자님이 감사하게 FTP 클래스를 구현해 두고 정리해놓은 블로그를 발견하였다.FTP 클래스가 너무 잘 정리되어있어 이렇게 블로그에 남겨놓는다.[원본 링크]왠만하면 원본링크를 클릭하여 들어가서 가르침을 받는게 좋을 듯.파일은 아래 링크에서 다운받자. //로그인 BOOL Login(CString strIP, CString strID=_T("anonymous"), CString strPasswd=_T(""), UINT nPort = INTERNET_DEFAULT_FTP_PORT, HWND hCallWnd = NULL, BOOL bUtf8 = TRUE, BOOL bPassive = FALSE); //로그아웃 void LogOut(); //FTP서버에 연결되어있으면 TRU..
소프트웨어를 빌드하고 실행하는 과정에서 메인프레임을 전체화면으로 실행하고싶다면 아래소스코드 추가 [ProjectName.cpp] BOOL [ProjectName]::InitInstance() { ... ... ... // The one and only window has been initialized, so show and update it m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);// SW_SHOW를 변경 m_pMainWnd->UpdateWindow(); ... ... ... }
파일 압축하는 라이브러리를 찾던 중 아주 쉬운 라이브러리를 발견.프로젝트에 파일만 추가하고 클래스 가져다가 쓰면 끝나는 라이브러리다.라이브러리 배포하는 사이트는 아래 링크[info-ZIP 공식 홈페이지 링크]zip.cpp 파일은 첨부파일로 올려두었다. 아래 링크 확인위 두개의 파일을 프로젝트에 그냥 추가하면 되겠다.[프로젝트명] 우클릭 -> [추가] -> [기존항목].h와 .cpp 두개 파일 추가한다. 사용방법의 소스코드는 아래와 같다. // m_itemCnt은 파일 총 갯수 멤버변수 // 파라미터 1: zip파일 생성 경로, 파라미터 2:password (default=0) HZIP hz = CreateZip(strTemp, 0); for (i = 0; i < m_itemCnt; i++) { if (m..
1. 클래스 마법사에서 아래 함수를 추가합니다. WM_CTLCOLOR 2. 생성된 OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 함수안에 아래 코드를 작성합니다. HBRUSH DlgConf::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 여기서 DC의 특성을 변경합니다. CRect rect; UINT nID = pWnd->GetDlgCtrlID(); if (nCtlColor == CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); // 배경 투명으로 변경 return ..
1. 클래스 마법사에서 아래 함수를 추가합니다. WM_ERASEBKGND 2. 생성된 OnEraseBkgnd(CDC* pDC) 함수안에 아래 코드를 작성합니다. BOOL CTest::OnEraseBkgnd(CDC* pDC) { CRect rect; GetClientRect(rect); pDC->FillSolidRect( rect, RGB(255,255,255) ); return TRUE; } * 다이얼로그 전체 배경색상을 흰색으로 지정한 예제코드입니다. 색상을 변경시 RGB 값을 변경하면 됩니다. 영역변경을 위해서는 rect 값을 변경해주시면 됩니다. 출처 : http://purelab.net/zbxe/guruin/127943?ckattempt=1