Introduction Windows기반에 MFC기반에서 모듈을 개발하기 시작할 때, 가끔 Log 데이터를 확인하고 싶을 때가 있습니다. 이때, 콘솔창을 이용하여 출력할 수 있는 방법이 있습니다. 아주 간단한 방법이며, 콘솔과 관련한 추가자료는 Win32 API관련 도서를 참고하시면 이와 관련된 추가 작업들을 확인 할 수 있습니다. 저는 콘솔에서 Gotoxy() 함수와 색상을 변경할 수있는 함수를 만들어서 사용하고 있는데, 아직 코드 정리가 미흡하기때문에 추구 공개하기로 하고 이번 포스팅은 콘솔창을 띄우는 방법에 대해 알아보도록 하겠습니다. 콘솔창 띄우기 방법 1 stdafx.h 파일에 아래 내용 추가 #ifdef _DEBUG #pragma comment(linker, "/entry:WinMainCRTS..
Introduction MFC를 사용하면서 기존에 만들어둔 다이얼로그를 새로운 프로젝트에 적용시키고 싶을 때가 있습니다. 본 포스팅에서 이야기하는 방법을 모를 때는 항상 다이얼로그는 새로 만들고, 코드만 가져다 붙여넣기를 하였습니다. 이런 방법은 복잡하지 않은 다이얼로그에 대해서는 괜찮은 방법이지만, 콘트롤이 많이 담겨져 있는 경우 좋지 않은 방법입니다. (한땀한땀....) 그래서 일의 효율을 올리고자 하신다면 다음과 같이 진행하시기 바랍니다. : ) 신규 프로젝트 생성 신규 프로젝트(visual studio project)를 생성합니다. 기본적인 다이얼로그가 보이시죠? 그리고 복사하고자 하는 프로젝트의 파일을 추가합니다. (아래 파일 참조) Step 1. 기존에 사용하고자 하는 Project 추가 이때..
Introduction 조금 긴 시간 동안 자료를 조사하여, 한글 인코딩 작업을 진행하였습니다. 목표는 기타 1)다른 플랫폼과의 통신을 주고 받을 때, 발생하는 인코딩 문제, 2)한글로 된 문서 혹은 제목 등에서 자음을 이용하여 검색에 관련한 문제를 해결하기 위함입니다. 또한, 이를 이용하여 한글과 관련된 작업 중 응용할 수 있는 부분이 많이 있습니다. 특히, 영문이 아닌 한글의 타이핑의 효과, 그리고 가상 키패드 입력만들기를 수행할 수 있습니다. 한글 인코딩과 관련된 작업은 현재, 포스팅 준비 중으로 조금 기다리시면 블로그에서 보실 수 있습니다. 그럼 간단히 만들어 둔 한글 인코딩 변환 작업 모듈을 미리 볼까요~? 결과물 Download : UnicodeManager R.101.zip 파일을 다운 받아..
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 이번에 만들고 있는 툴로 인해, 리소스를 관리가 필요해졌습니다. 리소스를 관리하기위해서는 사용자에게 공개되지 않고, SW에서만 사용하도록 하기위해서 입니다. 그래서 여러가지 방법을 이용하여 시도를 하고 있는데, 이번 버전은 간단하게 만들어두었습니다. 작업과 관련내용은 비밀로 하도록 하고, 사용방법에 대해서만 설명 하도록 하겠습니다. 그럼 바로 본론으로 가서 같이 설명하도록 하겠습니다. (SW 내부 참고이미지: 데이다라 사용) 리소스 관리 툴 현재 만든 리소스 관리 툴은 다음과 같습니다. 사용용도를 정리하면 다음과 같습니다. 사용자가 만든 이미지를 SW에서 사용하기위해서 이미지를 하나의 파일로 통합 이때, 통합된 파일은 최초 사용자가 비밀번호를 이용하여 최종 파일 생성 시, 암호화되..
Introduction 최근 socket.io와 관련된 내용은 포스팅 했었습니다. 물론 socket.io 이전에 가장 익숙한 TCP/IP 형태의 소켓을 이용하여 개발을 먼저 시도하였죠. 연결과 영문 전송은 성공입니다. 하지만, 한글은 제대로 전송이 되지 않더군요. 물론 macOS에서 Windows와 다른 인코딩을 사용한다는 것은 알고 있었지만, 쉽게 해결되지 않을꺼란 생각을 했었죠. 그래서 '한국어'와 관련한 인코딩에 대해 서베이를 시작하였습니다. 자료는 1998년도부터 최근자료까지 다 찾아봤죠. 크게보면 중복된 내용들이 블로그를 타고타고 넘어가서 만들어진 자료들이더군요. 자료는 정리 중이니 이후 블로그에서 확인하시면 될 것 같고, 본론인 swift와 Windows에서 개발한 C/C++에서의 한글 인코딩..
Introduction 이번에 MFC기반으로 Windows에 상주하고 있는 Process들의 리스트를 체크하는 작업을 진행하다 카카오톡의 광고제거 및 도배기(?) 라는 프로그램들을 보았습니다. 그래서 원하는 형태의 모듈이 있을 것 같아 찾아보기 시작하였습니다. 찾아본 자료들은 Win32 API를 이용하여 C/C++기반에 MFC, C#, Python등을 이용하여 만들어진 자료들이 많이 있었습니다. 언어는 다르지만 동일한 Win32 API를 활용하기에 전체적으로 자료는 검토하기로 하였습니다. 자료들 중에 정리가 잘된 블로그들도 있었습니다. 그래서 작업이 완료된 지금 잊어버리기 전에 블로그에 포스팅을 하고 마무리를 하는 것이 좋지 않을까 생각되어 키보드를 잡았습니다. 그럼 전체적인 Reference는 마지막 ..
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벌식, 글자 조합 등과 관련된 내용들이 있지만 이 내용 또한 추후 정리 하도록 하겠습니다. 특수문자 아스키 코드가 정리된 곳은 많이 있..