Introduction 출력된 이미지의 Exif 정보를 읽어 각각의 이미지 위에 Tooltip정보를 출력하는 것이 목표로서, 이번 포스팅은 Tooltip 사용방법에 대해 알아보고자 합니다. Exif는 github에 올려진 코드를 찾으면 쉽게 활용할 수 있습니다. 하지만, 너무 방대한 코드를 사용할 경우 오히려 좋지 않은 결과를 나타낼 수 있으니 적절히 테스트 이후, 진행하시는 걸 추천드립니다. 결과물 미리보기 원하는 목적은 PIcture control에 ToolTip 정보를 출력하여 사용자에게 이미지의 Exif를 출력해주는 것입니다. MFC - Dialog의 Picture Control Properties 설정 가장 먼저 Picture control의 속성 중 "Notify" 옵션을 "TRUE"로 변경을..
Introduction MFC CString을 이용하여 3자리 마다 콤마(,)를 추가하는 방법은 다음과 같이 수행하시면 됩니다. 간략한 코드는 메모와 함께 진행합니다. 레퍼런스의 코드와 동일합니다. CString 3자리 마다 콤마 추가 CString CProjectCleanerDlg::STR_COMMA(int i) { BOOL bMinus = FALSE; if (i 3; j -= 3) str.Insert(j - 3, _T(",")); if (bM..
Introduction 사진촬영을 할때, GPS가 내장된 기기에서는 자동으로 위치정보를 사진에 기록하게 됩니다. 이러한 사진들을 수집하여, 지도위에 나타내거나 혹은 여러가지로 LBM 시스템을 만들 수 있습니다. 하지만, 저는 GPS정보를 이용하여 단순히 촬영 된 사진을 일자/GPS정보 등을 이용하여 분류하고자 합니다. 물론 CNN등을 이용하여 분류할 계획도 하고 있지만, step by step 할꺼니까. 필요한 모듈을 먼저 만들고나서, 하나의 덩어리로 뭉칠 계획입니다. 그래서 온라인에 exif 를 parsing 하는 모듈을 꽤 찾아봤습니다. 물론 소스코드가 길다고 좋은 코드가 아니기때문에 필요한 정보가 나오는 코드가 있으면 전부 정리해서 테스트를 해보았습니다. 그리고 향후 작업을 위해서 visual st..
Introduction MFC를 사용하면서 list control을 사용할 때가 많습니다. 이전 포스팅 release 중에 리스트 콘트롤을 사용하는 경우가 종종 있어 이를 사용하기 위해서 조금 더 편리하게 클래스로 묶어두면 좋지 않을까 고민을 하였습니다. 또한, 리스트 콘트롤을 사용할 경우 발생하는 문제점으로 결과물 출력 속도가 있습니다. 이런 부분을 조금 더 쉽게 해결할 수 있는 방법이 없을까? 고민하여 인터넷을 찾아보기 시작하였습니다. 그렇게 인터넷을 찾아보고, 조금씩 아이디어를 획득 후 작업에 들어갔습니다. 결과는 성공....!! 랩핑이 조금 필요한 부분이 있지만, 사용방법에 대해 먼저 포스팅 하도록 하겠습니다. 사용법 사용하기 이전 list control의 properties 설정을 변경해야 합니..
Introduction MFC에서 picture control에 IplImage, Mat 이미지를 불러와야하는 경우가 종종 있었습니다.(과거형..) 최근에는 이를 이용하여 몇가지 툴을 만들고 있지만, 옛날에는 자료들이 없어 조금씩 정리를하고 있습니다. 서론 없이 코드를 보면서 이야기를 바로 하도록 하겠습니다. MFC - Mat 이미지 호출 COpenCVTestDlg.h public : Mat m_matImage; BITMAPINFO *m_pBitmapInfo; void CreateBitmapInfo(int w, int h, int bpp); void DrawImage(); MFC 다이얼로그에 Mat, BITMAPINFO 를 정의 합니다. 그리고 함수 정의 두개 추가 합니다. COpenCVTestDlg.c..
Introduction 문자들의 조합에는 다양한 특수문자들이 포함되어있습니다. 이러한 특수문자는 문서, 음악 등을 검색할 때 특히 취약한 부분입니다. 따라, 특수문자를 제거를 통해 검색의 효율을 올리는 방법을 알려드리고자 합니다. 검색에 대한 부분은 추후 정리할 예정이며, 이번 포스팅에서는 특수문자 제거하는 부분에 대해 살펴보도록 하겠습니다. 먼저, 특수문자는 어떻게 정의 되어있는지 알기위해 ASCII코드를 살펴보도록 하겠습니다. Low level이라 하기는 그렇지만, 문자를 다루기 위해서는 아스키코드, 유니코드 등 문자들에 대해 꼭 알아둬야 합니다. 이 밖에 2벌식, 3벌식, 글자 조합 등과 관련된 내용들이 있지만 이 내용 또한 추후 정리 하도록 하겠습니다. 특수문자 아스키 코드가 정리된 곳은 많이 있..
Introduction 앞서 포스팅 했던 내용 중 윈도우의 로컬 폰트 뷰어가 있습니다. 현재 포스팅 된 내용에서 조금 부족한 부분을 찾아 코드를 업데이트 해두었습니다. 관련 내용은 Edit Box에 현재 글자를 입력 중인 상태일 때, 결과를 바로 실시간 업데이트 하는 것입니다. 옛날부터 이런건 찾아서 만들어두고, 넘어가버리는 경우가 많아 블로그에 살포시 포스팅 하고 넘어가도록 하겠습니다. 어렵지 않아요~ MFC Edit control 입력 검사 Edit control에 EN_CHANGE 메시지를 추가합니다. 그리고 아래와 같이 코드 추가 하면 끝. void CLocalFontManagerDlg::OnChangeEditInputText() { UpdateData(TRUE); if (m_InputText.G..
Introduction 이번 포스팅은 제목 그대로 내용을 작성하려고 합니다. 최근 들어, 모바일 기기로 iOS, Android를 많이 사용하고 있습니다. 그리고 사용자들이 주로 사용하는 플랫폼으로 모바일 외, Windows, macOS, linux 등을 이용하고 있습니다. Watch series의 경우는 모바일 기기에 종속되기때문에 제외하도록 하겠습니다. 일단 본 포스팅의 주된 목표는 앞서 말한 플랫폼의 클라우드를 구축하는 것으로서 네트워크를 통해 연결작업을 준비해야합니다. 이를 위해 필자는 아래와 같이 테스트를 해보았습니다. TCP/UDP 형태의 통신 테스트 Windows Server(C/C++) iOS Client (language:siwft) 통신 가능 Error: 영문으로 된 데이터만 전송할 경우..
Introduction MFC를 사용하는 개발자가 얼마나 될지는 모르지만, 아주 간단한 TIP으로 실행 아이콘 변경하기와 관련하여 블로그 포스팅합니다. SW를 개발하고 배포할 전까지는 사용할일이 없어 찾아볼 이유조차 없지만, 언젠가는 한번은 보게 되어있기 때문에.... 알아두면 좋을 정보네요! 내용은 얼마되지 않으니 천천히 살펴보시기 바랍니다. ^^ 아이콘 변경하기 리소스관리자에서 Icon 하위폴더에서 "리소스 추가(Add Resource...)"를 선택합니다. 이때, ico 확장자 파일이 선택되지 않을 경우. (*.*)을 선택하여 원하시는 파일을 선택하시면 됩니다. 소스코드는 아래에 보이는 코드 일부를 검색하여 찾아, LoadIcon() 파라미터를 추가하신 리소스 이름으로 변경하시면 됩니다. m_hIc..
Introduction 오래된 자료 포스팅 중입니다. 필요하신 분들이 계실지는 모르겠지만, C/C++기반 콘솔에서 시간 출력하는 예제입니다. 소스코드 #include #include int main( void) { char *week[] = { "일", "월", "화", "수", "목", "금", "토"}; time_t current_time; struct tm *struct_time; time( ¤t_time); struct_time = localtime( ¤t_time); printf( "%4d 년n", struct_time->tm_year +1900); printf( " %2d 월(0-11)n", struct_time->tm_mon +1 ); printf( " %2d 일(1-3..
Introduction C/C++ 및 MFC, win32 API를 사용하다보면, 자주 부딪히는 문제들로 string 변환이 있습니다. 일전에 블로그에 포스팅해두고 항상 참고하면서 사용했지만, 블로그 초기화를 몇번 하다보니, 자료가 사라져 다시 포스팅합니다. 이전에는 소스코드를 열어서 일일이 찾아서 작업을 하였지만, 이것마져 귀찮아지네요~^^;; 옛날에는 옛날대로 자료들을 공개하지 않는 마인드들이 많다보니 그때는 자료가 없었지만 지금은 시간이 지나면 자연스럽게 생겨나는게 정보이다보니, 오랫동안 묵혀두는 정보는 아무런 필요 없는 것이 아닐까 하네요. C언어에서 printf()에 0으로 자릿수 맞추기 간혹가다 시간(time)과 관련한 작업을 할 때, 자릿수를 맞춰야하는 경우가 있습니다. 예시 2001년 1월 ..
Introduction 본 블로그의 포스팅과 관련된 내용을 작성한지 몇년이 지났는데, 에버노트를 정리하다가 버릴까 하던 내용을 다시 다시 주워서 정리 후 포스팅합니다. 최근에는 C/C++을 이용한 개발이 native형태되면서 UI는 기타 다른 언어들을 많이 사용하고 있습니다. 그래서 기존에 만들어 둔 C/C++ based network socket 모듈을 버릴 수 없어 한동안 열심히 찾아봤습니다. 또한, 최근 비대면 서비스가 활발해짐에 따라 다양한 플랫폼을 연결시켜야 하는 문제가 있습니다. Web, PC(Windows), MacOS, Android, iOS는 기본으로 하고 그외 다른 플랫폼들도 연결이 되어야 하죠. 다양한 플랫폼을 위한 통합 개발툴도 많이 있긴하지만, native를 써야하는 상황이 올 때..