미드저니로 추출한 "기타치는 얼룩말" 입니다. 최근 동물원에서 탈출한 "세로"를 위해 한번 출력해보았습니다. 자연스러워 보이지만, 자연스럽지 않은!? 사진이죠? 개요 최근, Chat GPT와 미드저니 및 기타 AI관련 저작도구들을 사용해보고 있었습니다. 연구과제 제안서 및 발표자료를 작성하면서 열심히 활용하였는데, 블로그 포스팅을 하면서 더 열심히 사용할 수 있지 않을까 합니다. 오늘은 SW개발 작업 도중 아래와 같은 오류를 만나게 됩니다. Severity Code Description Project File Line Suppression State Error (active) E0266 "ACCESS_MASK" is ambiguous clrLibrary C:\Program Files (x86)\Windo..
Introduction 최근 MFC사용을 하다가 사용하고자 하는 Library가 MFC에서 컴파일 되지 않는 경우가 발생하였습니다. 3~4달 동안 컴파일 설정 및 테스트를 실시하였지만, 시간만 허비하게 되고 결국 중국 바이두를 통해 검색해본 결과 MFC에서 지원이 되지 않은 것을 확인 햇네요. 그래서 C++에서 어떤 인터페이스를 사용할 수 있는지 조사를 해보았습니다. 최근 MS쪽에서 진행하고 있는 것으로는 "Win UI 3" Nana C++ Library ImGuI Qt 기타 - 나무위키 참조 : GUI 라이브러리 그 외에도 여러가지 Library가 있지만, 너무 오래되거나 테스트 해보지 않아 작성하지 않았습니다. Nana C++ 라이브러리를 먼저 사용해보았습니다. 아래와 같은 인터페이스로 구성되어있고,..
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 기존에 만들어진 모듈을 하나로 어떻게 취합할까 고민하다 DLL관련 작업을 시작하였습니다. 그렇게 프로젝트를 하나씩 추가하다보니 몇가지 문제가 생겼습니다. 추가하는 프로젝트의 Platform 설정이 뒤죽박죽이 되어버리는 것아닌가요? 그래서 빌드되는 path가 엉망이 되어버렸습니다. 그래서 path문제를 해결하기위해 이것저것 찾아보니 엄청 간단하게 해결 가능하였습니다. 방법은 다음과 같습니다. Visual Studio Property 설정 상단 그림과 같이 "All Configurations" , "All Platforms" 를 선택합니다. 그리고 빌드 후 출력되는 path를 다음과 같이 설정 합니다. #설정1 $(SolutionDir)$(Platform)\$(Configuration..
Introduction 블로그에 포스팅을 하지 않으려고 하였지만, 어느새 자료를 찾아 하나씩 정리하다보니, 블로그에 포스팅을 해야겠다는 생각을 했습니다. 당연히 향후 작업할 때 찾아보기 쉽게 정리하기 위해서죠. 소스코드도 정리해서 올려둬야 할까? 고민이 되네요. 일단 궁금한 점들이 있어 먼저 이야기를 해볼까 합니다. Windows 기반에서 Library를 사용하는데 있어 정적(static)/동적(Dynamic) 라이브러리를 사용하게 됩니다. 이부분에 대해서는 크게 설명하지 않아도 인터넷자료를 찾아보면 많이 나옵니다. 하지만, Visual Studio를 열고나서 라이브러리를 만들고자 할 때, 당황스러운 상황이 발생하게 됩니다. 아래의 설명을 보시면 알겠지만, 라이브러리를 만들 수 있는 방법이 여러가지가 있..
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 추가 이때..