프로그래밍 261

CString , BSTR , CComBSTR , CComVariant 간의 자료형변환

인클루드 #include CString bstrToCString(BSTR bstr) { char* pbstr; USES_CONVERSION; //convert를 위한 매크로 pbstr=OLE2A(bstr); //bstr을 char로 convert return CString(pbstr); } BSTR CStringTobstr(CString str) { return str.AllocSysString(); //CString을 bstr로 convert }[bstr-> char*] BSTR inputdata; char *pbstr; pbstr=OLE2A(inputdata);[char* -> bstr] TCHAR szTitle[ 512 ]; _bstr_t bstrText = szTitle; *bstrTitle = ..

TLB도 Release, Debug 모드에 맞춰서 Import 하자.

지금 방금 있었던 일. dkErr CAxStoryBoardCtrl::makeThumbnail(BSTR BinItemURN,HBITMAP *hbitmap,int Width,int Height,dkTime nPos /*= -1*/) { HRESULT hr; char * pBuffer = NULL; hr = m_pCaptureFrame->SaveVideoPictureToFile(BinItemURN, L"C:\\a.bmp", nPos, Width, Height); if (FAILED(hr)) { AfxMessageBox("비디오 저장 실패"); return hr; } hr = m_pCaptureFrame->GetVideoPicture(BinItemURN, nPos, Width, Height, &pBuffer);..

COM에서 DATE 타입 사용하기

ActiveX에서 외부에 노출할 메소드를 하나 만들려고 할 때 보이는 Data 타입 중 하나가 DATE 타입이다. DATE는 time_t 보다 더 큰 타입이라나. 암튼 그렇다. ActiveX에서 이렇게 받았다. DATE m_ChartFirstDate COleDateTime dateChartFirst(this->m_ChartFirstDate); int nYear = dateChartFirst.GetYear(); int nMonth = dateChartFirst.GetMonth(); int nDay = dateChartFirst.GetDay(); 그리고 2006년 12월 31일이 DATE 타입으로 어떤 값인지를 알아야 HTML에서 ActiveX로 값을 넘길 수 있다. 그건 이렇게 만들었다. COleDateT..

switch / case의 이상한 경험

MemoryDC에서 모든 그림을 다 그려온 다음 bitblt하려고 다음과 같이 했다. CDC MemDC; MemDC.CreateCompatibleDC(pDC); CBitmap bitmap; bitmap.CreateCompatibleBitmap(pDC, m_BackImage.GetWidth(), m_BackImage.GetHeight()); CBitmap *pBitmap = MemDC.SelectObject(&bitmap); switch(spec) { case 0 : foo(&MemDC); break; case 1 : foo(&MemDC); break; } 그런데 저거 안된다. foo로 호출한 MemDC안에 아무것도 안 그려진다. 그래서 함수 호출하지 않고 switch(spec) { case 0 : Mem..

SVN에서 SSH 터널링하기

SVN에서 SSH로 터널링할 수 있다. 장점 1. passwd 파일을 통해 비밀번호가 노출되지 않는다. 2. SSH를 통하니만큼 보다 보안유지에 좋다. 3. 서버에 SSH만 떠 있으면 그걸로 끝이다. 4. 특별히 svnserve를 띄울 필요도, 외부에서 접속하려고 그 포트를 따로 열어줄 필요도 없다. 단점 1. repository로 가는 문자열 길이가 좀 길어졌다고 해야 하나. 2. 사용자수만큼 리눅스 계정을 생성해 줘야 한다. 서버 설정 SSH 터널링을 하면 리눅스의 사용자 계정으로 접속하게 된다. 그리고 그 사용자 계정으로 로그인해서 그 사용자의 계정 밑의 폴더에 repository를 생성해서 사용하게 된다. svnadmin create --file-fs fsfs TEST 이런 식이다. 그리고 사용자..

슬라이더 콘트롤의 특징

슬라이더 콘트롤의 모양을 바꾸고 싶을 때가 있다. 슬라이더 기본콘트를은 이지만, 다음과 같이 새로 고칠 수 있다. 하지만 이때 알아야 할 사항이 있다. 손잡이 Thumb의 최대 크기는 11픽셀이라는 거다. 그리고 맨 왼쪽에 손잡이를 놓으면 그때의 THumb의 rect.left가 8이 나온다. 8~Thumb의 width()만큼 화면에 그려지는거다. 최대로 오른쪽에 놓으면 그때 Thumb의 Rect.left는 89이다. 89~THumb의 Height()만큼 그려진다. 89 + 11 = 100. 이 값을 넘어서면 Thumb이 짤린다. 기본 트래커의 THumb은 정확히 11픽셀의 가로를 갖는다. 그리고 위아래 특히 아래 여백이 충분하지 않으면 손잡이를 잡고 움직일 때 제대로 되지 않는 현상이 발생한다.