Introduction C++을 사용하면서 단일 배열을 함수 인자로 전달하는 경우는 많이 있습니다. 많이 없습니다. 잘 사용하지 않으니 포스팅을 하게 되네요. 중요한 코드는 아니지만, 가끔 문법이 혼돈되는 경우가 있어 블로그에 사용방법에 대해 간략히 메모를 하고자 합니다. 코드만 올려두도록 할테니 참고 바랍니다. 사용방법 변수 double array1[2]; 함수 선언 void RunFuncArray(double z, double (&array1)[2]); 함수 정의 void RunFuncArray(double z, double (&array1)[2]) { //... for (i = 0; i < 2; i++) { B[i] = array1[i]; } //... } 사용법 RunFuncArray(double..
개요 MFC를 사용한지도 오래되었지만, 항상 반복되는 오류로 인해 블로그에 포스팅을 하고자 합니다. 즉 간략 메모용! 에러코드 C1010 미리 컴파일된 헤더를 찾는 동안 예치기 않은 파일의 끝이 나타났습니다. 해결방법 해결방법은 프로젝트의 속성페이지로 이동합니다. 이동하고 나서 아래의 설정을 변경해주시면 됩니다. 구성 속성 > C/C++ > 미리컴파일된 헤더 > 미리 컴파일된 헤더 "미리 컴파일된 헤더 사용 안함" 선택 물론, 이러한 방법 외에 저 파일을 필요로하는 장소로 이동하여 헤더파일을 #include 해주시면 됩니다. Reference 2018.10.04 VS ERROR C1010 : 미리 컴파일된 헤더파일이 없습니다.
개요 Visual Studio 2019버전으로 넘어오면서 MFC를 사용안할 줄 알았지만, 아직까지 MFC를 쓰는곳이 있...겠죠? ^^;; 저도 MFC를 아직도 쓰고 있지만, WPF, UWP 등으로 전환 예정 중이며, 조만간 MFC로 만들어진 SW를 전부 옮길 생각입니다. ^^ 서두에 조금 불필요한 말을 썼지만, Visual Studio 2019 에는 MFC가 기본적으로 포함되어있지 않기때문에 아래와 같이 추가 하시면 됩니다. Visaul Studio 2019에 MFC 추가하기 시작 > Visual Studio Installer 검색 후 실행 Visual Studio 2019 > 수정 선택 C++를 사용한 데스크톱 개발 > 최신 v142 빌드 도구용 C++ MFC 선택 참고사항 그 이유는 MFC에서 WP..
개요 MFC에서 Command Arguments를 받을 일이 있을 줄은 몰랐네요. 기존 console기반 종속적인 프로젝트를 MFC 인터페이스에 결합하면서 파일 등으로부터 값을 받아 전달하는 형태로 만들었습니다. 파라미터 입력값 잘못인듯하지만, 값이 제대로 들어가지 않는 문제가 있어 자료를 찾아보니 간단하게 해결방법이 있었습니다. 추후 언제 사용할지는 모르지만, 블로그에 메모용으로 업로드 하고 갑니다. Command Arguments 설정 MFC의 프로젝트 설정에도 Command Arguments 를 추가할 수 있습니다. Configuration Properties > Debugging > Command Arguments Sources code에서 확인하는 방법 void Init() { int argc ..
Introduction vector를 이용하면서 정렬이 필요한 경우가 있습니다. 여러가지를 이용할 수 있지만, 제목에 맞춰 vector를 이용하여 정렬하는 방법에 대해 정리하도록 하겠습니다. 간단한 내용이기 때문에 코드와 약간의 설명만 추가하여 넘어가도록 하겠습니다. 이후 필요한 자료가 있을 경우, 포스팅에 추가 혹은 블로그에 업로드 하도록 하겠습니다. vector 형태 정렬 방법 #구조체 정의 typedef struct _monitorArg { int index; int left; _monitorArg(int i, int _n){ index = i; left = _n; } }ST_MONITORARG; 구조체는 index, left 값을 가지고 있습니다. 이때, left의 값을 이용하여 정렬(오름/내림)..
Introduction 이번 포스팅을 준비하는데 있어, 틈틈히 한글(인코딩)과 관련된 자료를 찾아보느라 소요시간이 많이 걸렸습니다. 본 포스팅에서 참조한 레퍼런스는 공개하도록 하겠습니다. 각 페이지에 접속하여 오래된 자료부터 천천히 하나씩 읽어보시는 것을 추천드립니다. 그 이유는 최근 자료들이 만들어지기까지 여러 블로그를 타고 다니며, 조금씩 개선된 부분도 있고 조금 이상한 부분도 있었습니다. 그래서 본 포스팅에서 다루지 못하는 내용들은 참조 링크를 확인 후 필요에 따라 추가 작업을 하시면 좋지 않을까 합니다. 그럼 본 포스팅의 최종 목적은 "인코딩에 문제 없이 코딩하고 싶다." 입니다. 그래서 iOS, Android, Windows, macOS 등에서 자유롭게 데이터를 주고 받고 싶은것이 목적입니다. ..
Introduction 결과물만 업로드 하는 포스팅입니다. 이전 포스팅에 이어 socket.io-client-cpp 를 이용하여 MFC에 추가작업을 진행하였습니다. 물론, 한글 인코딩 문제와 여러가지 문제들을 해결을 완료하였습니다. 사용방법은 nodejs 기반에 Web서버가 있고, 아래와 같이 message를 구현해주시면 됩니다. #node.js 기반 Web서버 예제 (node.js 관련 도서 책 참고) // 'message' 이벤트를 받았을 때의 처리 socket.on('message', function(message) { console.log('message 이벤트를 받았습니다.'); console.dir(message); if (message.recepient =='ALL') { // 나를 포함한 ..
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 출력된 이미지의 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 MFC를 사용하면서 list control을 사용할 때가 많습니다. 이전 포스팅 release 중에 리스트 콘트롤을 사용하는 경우가 종종 있어 이를 사용하기 위해서 조금 더 편리하게 클래스로 묶어두면 좋지 않을까 고민을 하였습니다. 또한, 리스트 콘트롤을 사용할 경우 발생하는 문제점으로 결과물 출력 속도가 있습니다. 이런 부분을 조금 더 쉽게 해결할 수 있는 방법이 없을까? 고민하여 인터넷을 찾아보기 시작하였습니다. 그렇게 인터넷을 찾아보고, 조금씩 아이디어를 획득 후 작업에 들어갔습니다. 결과는 성공....!! 랩핑이 조금 필요한 부분이 있지만, 사용방법에 대해 먼저 포스팅 하도록 하겠습니다. 사용법 사용하기 이전 list control의 properties 설정을 변경해야 합니..