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 이번에 만들고 있는 툴로 인해, 리소스를 관리가 필요해졌습니다. 리소스를 관리하기위해서는 사용자에게 공개되지 않고, SW에서만 사용하도록 하기위해서 입니다. 그래서 여러가지 방법을 이용하여 시도를 하고 있는데, 이번 버전은 간단하게 만들어두었습니다. 작업과 관련내용은 비밀로 하도록 하고, 사용방법에 대해서만 설명 하도록 하겠습니다. 그럼 바로 본론으로 가서 같이 설명하도록 하겠습니다. (SW 내부 참고이미지: 데이다라 사용) 리소스 관리 툴 현재 만든 리소스 관리 툴은 다음과 같습니다. 사용용도를 정리하면 다음과 같습니다. 사용자가 만든 이미지를 SW에서 사용하기위해서 이미지를 하나의 파일로 통합 이때, 통합된 파일은 최초 사용자가 비밀번호를 이용하여 최종 파일 생성 시, 암호화되..
Introduction 최근 socket.io와 관련된 내용은 포스팅 했었습니다. 물론 socket.io 이전에 가장 익숙한 TCP/IP 형태의 소켓을 이용하여 개발을 먼저 시도하였죠. 연결과 영문 전송은 성공입니다. 하지만, 한글은 제대로 전송이 되지 않더군요. 물론 macOS에서 Windows와 다른 인코딩을 사용한다는 것은 알고 있었지만, 쉽게 해결되지 않을꺼란 생각을 했었죠. 그래서 '한국어'와 관련한 인코딩에 대해 서베이를 시작하였습니다. 자료는 1998년도부터 최근자료까지 다 찾아봤죠. 크게보면 중복된 내용들이 블로그를 타고타고 넘어가서 만들어진 자료들이더군요. 자료는 정리 중이니 이후 블로그에서 확인하시면 될 것 같고, 본론인 swift와 Windows에서 개발한 C/C++에서의 한글 인코딩..
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 MacOS를 재설치하고나서 이것 저것 SW/App들을 설치를 하였습니다. 마지막에 anaconda 및 tensorflow 설치 및 설정을 하였습니다. 그리고 설정이 어디까지 되었는지는 모르지만, 터미널을 실행하게 되면 $ (base)~ 로 시작하게 됩니다. 그리고 이후에 Mac에 설정된 git을 실행하려고 하는데 실행이 되지 않고 아래와 같은 오류 메시지를 출력하게 됩니다. (상위 결과 화면은 anaconda의 실행관련 문제 해결 후 “git” 명령을 수행할 때 나타나는 상황) 일단, git을 터미널로 사용하고 있기때문에 찾아서 해결해보도록 하겠습니다. 터미널에서 $(base)~ 나타나는 문제점/해결방안 #문제점 터미널을 실행하면 아래와 같이 나옴 $(base)UserName:~~..
Introduction 이번 포스팅은 제목 그대로 내용을 작성하려고 합니다. 최근 들어, 모바일 기기로 iOS, Android를 많이 사용하고 있습니다. 그리고 사용자들이 주로 사용하는 플랫폼으로 모바일 외, Windows, macOS, linux 등을 이용하고 있습니다. Watch series의 경우는 모바일 기기에 종속되기때문에 제외하도록 하겠습니다. 일단 본 포스팅의 주된 목표는 앞서 말한 플랫폼의 클라우드를 구축하는 것으로서 네트워크를 통해 연결작업을 준비해야합니다. 이를 위해 필자는 아래와 같이 테스트를 해보았습니다. TCP/UDP 형태의 통신 테스트 Windows Server(C/C++) iOS Client (language:siwft) 통신 가능 Error: 영문으로 된 데이터만 전송할 경우..
Introduction 지난 iOS 및 nodeJS 통신에 이어 Android client와 nodeJS 서버와의 통신에 대해 알아보도록 하겠습니다. 간단하니깐 쉽게 쉽게 따라합시다.!! 안드로이드는 java로만 개발을 해왔기때문에 본 블로그에서는 코틀린(kt)의 경우 코드 수정이라기보다 테스트용으로만 확인하였습니다. 그래서 코드는 전체 다 올리도록 할테니, 필요에 따라 수정하여 사용하시기 바랍니다. activity_main.xml 레이아웃은 상위 그림과 같습니다. 그리고 레이아웃 코드까지는 필요을것 같아 제외하도록 하겠습니다. 그리고 가장 중요한 안드로이드 기기 권한 설정을 추가해주시기 바랍니다. AndroidManifest.xml 그리고 socket.io를 추가하기위해 아래와 같이 추가 하시면 됩니다..
photo by vbflash Introduction 이번 포스팅은 길었던 iOS chatting App UI를 마치고, 본적격으로 socket.iO를 이용하여 통신을 주고 받는 방법에 대해 알아보도록 하겠습니다. 이것저것 테스트를 많이하다보니, 소스코드가 많아져 혼란스러운 부분이 있어 포스팅에 해가가지 않을까 했지만 다행히 소스코드를 백업 해둬서 이렇게 글을 쓸 수 있네요. 블로그 쓰는 시점에 macOS Big sur 가 업데이트 되고 있는데, 향후 작업하시는 부분에 있어 문제가 되지 않을까도 걱정됩니다. 하지만, 발생하는 오류가 있으시면 댓글 달아주세요! 현재 작업 중인 부분에 대해서는 질답이 가능하니깐요...!! 그럼 socket.io를 이용한 통신방법에 대해 알아볼까요? socket.io base..