반응형
반응형
이번 포스팅에서는 MFC 환경에서 Modeless Dialog를 생성하고 사용하는 법을 알아보겠습니다. Dialog에는 Modal과 Modeless가 있는데 Modal은 부모 윈도를 제어할 수 없지만 Modeless는 각각 독립적으로 동작하는 특징이 있어서 저는 Modeless를 선호합니다. Modeless Dialog의 Base Class는 CDialog입니다. 1. Dialog 비교 Modeless Dialog는 CDialog 기본 생성자를 호출하여 Dialg object를 생성하지만 DoModal() 대신 CDialog:Create 멤버 함수 호출이 필요합니다. Create()는 리소스 ID를 매개 변수로 사용하고 Dialog가 화면에 계속 표시된 상태로 즉시 반환됩니다. Modal Dialog M..
openssl 소스코드를 static library로 빌드하여 MFC 프로젝트에 통합하는 내용입니다. 그럼 따라와요 출발~ (참고로 실패한 글입니다.) 프로젝트에 어떤 crypto library를 적용할지 각 라이브러리 비교 후 crypto++과 많은 고민 하다가 openssl로 결정. 각 라이브러리 비교페이지는 아래 위키를 참조해주세요. https://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries Comparison of cryptography libraries - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search The tables below co..
프로그램 개발 중 프로그램 에러는 컴파일 에러와 런타임 에러가 있습니다. 이번 포스팅에서는 런타임 에러 발생 시 디버깅에 필요한 정보를 파일로 저장하는 방법을 알아보겠습니다. 1. 런타임 에러의 종류 구문오류는 컴파일 타임에 컴파일러가 알려주는데 아래와 같은 런타임 에러는 프로그램이 그냥 꺼져버립니다. 그래서 별도로 그 순간의 스냅샷 정보를 저장하지 않으면 디버깅이 어렵습니다. 런타임 에러의 분석과 해결을 위해서는 당시 메모리와 레지스터 등의 디버깅에 필요한 정보를 파일로 저장할 필요가 있습니다. https://docs.microsoft.com/en-us/windows/win32/dxtecharts/crash-dump-analysis의 Crash Dump Analysis가 그 방법을 알려주고 있습니다. ..
이번 포스팅에서는 C/C++ GUI 개발 환경에서 로그 출력을 위한 Logger 매크로를 작성하여 효율적으로 디버깅 메시지를 출력하는 방법을 알아보도록 하겠습니다. Logger 요구사항은 다음과 같습니다. MFC 프로그램 개발 시 콘솔 로그를 확인할 수 있어야 한다. 로그가 파일로 저장되어야 한다. 1. 콘솔창에 로그 출력하는 방법 MFC와 같은 GUI 개발환경에서 콘솔로 로그를 출력하려면 컴파일 단계에서 링커에게 콘솔을 띄우도록 알려줘야 합니다. 그 방법은 아래 코드를 참조하면 됩니다. framework.h 에 아래 내용 추가 후 코드에서 DPRINTF 함수를 호출하면 별도 콘솔창에 로그가 출력됩니다. #ifdef _DEBUG #ifdef _UNICODE #define WIDEN(x) L ## x #d..
MFC 기반 프로젝트에서 json을 파싱 하기 위해 가장 적절한 json 라이브러리를 알아보았습니다. 그 결과 simdjson이 가장 최신기술을 활용하여 개발된 것 같아서 프로젝트에 적용해 보았습니다. 참고로 32비트 프로젝트에서는 사용이 불가능합니다. 1. simdjson? SIMD 기술을 적용하여 json 파서 중 가장 빠른 파서라고 하며 관련 논문도 찾아볼 수 있습니다. SIMD는 Single Instruction Multiple Data의 줄임말로서 병렬 컴퓨팅의 한 종류입니다. 하나의 명령어로 여러 개의 값을 동시에 계산하는 기술입니다. 하나의 명령어를 수행하는 데 걸리는 시간을 줄일 수 있기 때문에 연산이 많은 작업에서 성능을 향상할 수 있습니다. https://github.com/simdjs..
상용 HTS 프로그램을 사용하면 차트와 연계하여 이동평균선, MACD 등의 지표 정보를 볼 수 있습니다. 하지만 xingAPI, Kiwoom Plus 같은 증권사 API를 이용하면 지표를 별도로 계산해야 합니다. 각 지표에 대한 계산식은 쉽게 찾을 수 있지만 그 지표들를 직접 계산하는 코드를 작성하는 것은 시간낭비라고 생각합니다. 왜냐하면 이미 누군가 만들어두었기 때문에 갖다 쓰면 됩니다. 대표적인 기술적 지표 분석 라이브러리 TA-LIB을 MFC 프로젝트에 설치하는 방법을 알아보겠습니다. 1. TA-LIB에 대하여 TA-Lib은 트레이딩 소프트웨어 개발자들을 위한 기술적 분석 라이브러리로서 오픈소스입니다. 아래 경로에서 TA-Lib 소스코드를 다운로드할 수 있습니다. https://ta-lib.org/..
거실에 실링팬을 설치하였는데 만족도가 높아서 안방에도 방등 대신 실링팬을 셀프로 설치하며 남긴 기록입니다. 알리에서 가성비가 좋기로 소문난 SOVE 실링팬을 구매하여 설치하였습니다. 거실에 루씨에어 실링팬을 설치해 봤는데 천장형 선풍기 치고는 가격거품이 너무 심한 제품인 것 같아 안방에는 SOVE 실링팬을 설치한 것입니다. 1. 루씨에어 vs SOVE 루씨에어 실링팬은 52인치 제품이 약 46만 원인데 반해 SOVE 실링팬은 52인치가 약 13만 원으로 3배 이상 저렴합니다. 그런데 SOVE 실링팬과 동일한 제품이 우리나라에서 다른 브랜드 이름을 달고 30만원대에 팔고 있다는 사실에도 놀랐습니다. 그러므로 SOVE는 직구하시는 것을 추천합니다. 설치한 결과는 대만족입니다. 방 가운데 있던 주광색의 등은 ..
대부분의 아파트에 설치된 주방 후드 제조사는 하츠입니다만, 역류방지 역할을 하는 기본 댐퍼가 플라스틱 소재로 기밀성이 좋지 못하여 식사 시간대에 다른 집에서 후드를 가동하면 가동하지 않은 집에 냄새가 역류합니다. 이웃집의 고기 굽는 냄새, 된장찌개냄새, 생선구이냄새 등이 우리 집에 들어와서 우리 집 공기청정기까지 반응을 합니다. 30층이상 고층에 살 때는 비바람 몰아치는날 주방후드 배관으로 공기가 역류하여 기본 댐퍼가 바람에 펄럭거리며 마치 빗물이 후드로 떨어지는 듯한 소리가 났었습니다. 1. 전동댐퍼 소개 전동댐퍼는 전원을 켜면 댐퍼가 열렸다가 전원을 끄면 댐퍼가 닫히면서 공기의 이동을 차단하는 제품입니다. 힘펠 전동댐퍼를 많이 사용하는 것 같아서 힘펠 전동댐퍼를 구매하였습니다. 하츠 후드에 장착되어 ..