| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- Filtering
- Read
- Contour
- UNO
- atmega328
- flutter
- SERIAL
- parameter
- APP
- Class
- sensor
- file access
- mfc
- digitalRead
- wpf
- aduino
- Android
- stream
- subpixel
- edge
- Gaussian
- compare
- memory
- Gradient
- c++
- Encapusulation
- public
- Binary
- Pointer
- Unity
- Today
- Total
목록mfc (16)
폴크(FOLC)
MFC 애플리케이션은 기존처럼 CView, CDialog 기반으로 유지하면서, 그 내부에 WPF 컨트롤을 child 형태로 삽입(hosting) 하는 방식입니다. 이를 좀 더 구조적으로 설명드리면 다음과 같습니다: 기본 구조[MFC 메인 윈도우 또는 다이얼로그] └─ [WPF 컨트롤을 호스팅하는 C++/CLI HwndHost 클래스] └─ [WPF UserControl (XAML UI)] MFC에서 HWND를 통해 자식 윈도우처럼 공간을 만들고C++/CLI의 HwndHost를 사용해 WPF 컨트롤을 MFC 영역 안에 마운트즉, WPF는 child dialog 또는 embedded panel처럼 작동합니다. 왜 이렇게 구성하는가?이유설명기존 MFC 구조 유지전체 재작성 없이도 WP..
MFC 프로젝트에 WPF UI(UserControl)를 삽입하고 이벤트를 처리하는 전체 예제를 아래와 같이 구성해드릴게요. 이 프로젝트는 다음과 같은 3개의 서브 프로젝트로 나뉩니다: 프로젝트 구성WpfControlLibrary→ WPF UserControl을 정의 (예: 버튼 클릭 이벤트 포함)WpfHostBridge (C++/CLI Class Library)→ WPF를 호스트하고 MFC에서 사용할 수 있도록 핸들 노출MfcHostApp (MFC Application)→ 실제 실행 앱. C++/CLI DLL을 통해 WPF UI 삽입 및 이벤트 처리 [WPF UserControl 프로젝트 - WpfControlLibrary]1-1. UserControl 생성: MyWpfControl.xamlxml 파일 ..
MFC 프로젝트에 WPF UI 화면을 삽입하고 이벤트를 처리하는 방법은 Interop 기술을 활용하는 방식으로 이루어집니다. Visual Studio 2022에서도 지원되며, 다음과 같은 구성요소와 절차가 필요합니다. 개요: MFC에 WPF 삽입 원리MFC 프로젝트는 기본적으로 Win32 기반 C++ 환경이므로, WPF(.NET 기반)의 UI 요소를 삽입하기 위해 중간 호스트 컨트롤을 사용해야 합니다.대표적인 방식:HwndSource: WPF → Win32 로 호스팅HwndHost: Win32 (MFC) → WPF를 포함할 때 사용ElementHost: Windows Forms에서 사용하지만, MFC에서는 C++/CLI를 통해 유사한 방식 사용 절차 요약WPF UserControl 생성 (.NET 프로젝..
1. MFC와 WPF의 기술적 차이플랫폼C++ 기반 Win32 API 래퍼.NET Framework/.NET Core 기반렌더링 기술GDI 기반, 저수준DirectX 기반, 고급 그래픽UI 정의코드 기반 (절차적)XAML 기반 (선언적)데이터 바인딩거의 수동 처리강력한 데이터 바인딩 시스템아키텍처 패턴주로 MVC 또는 비구조적MVVM 권장스타일/테마매우 제한적완전한 스킨/스타일 시스템 지원해상도 대응수동 처리자동 DPI Scaling 지원 결론: MFC는 레거시이지만 시스템 수준 제어에 유리하고, WPF는 현대적인 UI/UX 및 유지보수성이 강점입니다. 2. 대체 시나리오시나리오 A. 전체 WPF로 리빌드기존 MFC 코드 중 비즈니스 로직은 C++/CLI 또는 C# 클래스로 이식하고UI는 XAML + M..
Visual Studio 2022에서 기존 MFC 프로젝트를 Qt로 대체할 수 있는지에 대해 실무적인 관점에서가능하지만 “단순한 교체”는 어렵고, 재설계에 가까운 마이그레이션이 필요하다. 1. Visual Studio 2022에서 Qt 개발은 완전히 가능Qt는 Visual Studio와 통합되어 있어 VS2022에서도 아래 방식으로 완벽하게 개발 가능Qt Visual Studio Tools (공식 확장 도구) 설치→ Qt 버전 등록, Qt 프로젝트 생성, 빌드, UI 디자이너 연동 등 가능CMake 프로젝트 지원 강화 (Qt 6부터 CMake 공식 지원)MFC와 Qt를 같은 VS 환경에서 병렬 사용도 가능하므로 점진적 마이그레이션에도 적합 2. 기존 MFC UI 코드의 Qt 전환윈도우 생성CWnd, C..
MFC (Microsoft Foundation Classes) C++ 기반 프로젝트에서, OpenGL을 이용해 x, y, z 형태의 이미지 데이터를 화면에 표시하는 방법 1. 기본 개념 정리 MFC는 CView나 CWnd 기반으로 OpenGL 컨텍스트를 초기화해서 사용해야 합니다. OpenGL은 glVertex3f(x, y, z) 같은 걸 써서 3D 좌표를 직접 화면에 그립니다. 당신이 가진 데이터가 (x, y, z) 형태라면 메쉬화해서 그릴 수도 있어요.2. 전반적 작업 순서 MFC 프로젝트에 OpenGL 초기화 OpenGL 렌더링 컨텍스트 생성 데이터 (x, y, z 배열) 준비 OpenGL의 렌더링 함수 (OnDraw 등) 안에서 데이터 출력 윈도우 리사이즈 및 OpenGL 뷰포트 관리3. 간단 예..
MFC C++ 애플리케이션의 성능 향상은?효율적인 알고리즘과 데이터 구조 선택: 적절한 알고리즘과 데이터 구조를 선택하는 것은 성능 최적화의 핵심ex) 정렬이 필요한 경우 퀵 정렬(Quick Sort)이나 병합 정렬(Merge Sort)과 같은 효율적인 알고리즘을 선택데이터 저장에는 std::vector나 std::map 등 적합한 컨테이너를 사용컴파일러 최적화 옵션 활용: 컴파일 시 컴파일러의 최적화 옵션을 활용하면 실행 성능을 향상Visual Studio의 경우 /O2 옵션은 최대 속도를 위한 최적화를 수행/O1 옵션은 코드 크기를 줄이는 최적화를 수행인라인 함수 사용: 짧은 길이의 함수는 인라인으로 선언하여 함수 호출 오버헤드를 줄임.메모리 할당 최소화: 동적 메모리 할당은 성능 저하의 주요 원..
무료로 사용할 수 있는 버전들은 아래와 같이 대략 6가지 정도이다.각 컨트롤마다 완전 무료로 공개된 버전도 있지만 64비트에서만 유료로 지원하는 버전도 있다.1. MFC Grid Control (CGridCtrl) - 2015년 2.27 버전2. Ultimate Grid - 2007년 버전 7.3 (2013년에 코드 공개)3. CGridListCtrlEx - 2016년 2.4 버전4. CQuickList - 2006년5. ALX Grid Control - 2025년6. Dapfor MFC Grid - 2010년 2.3.2 버전
# 일반적으로 프로세스간의 데이터를 공유하는 방법 -> IPC : Inter-Process Communication - 윈도우 메시지 전달 방법 - TCP/IP 통신 이용 방법 - 공유 메모리 이용 방법 - 공유 파일 이용 방법 - 등등 # 2개의 PC에서 특정한 데이터를 공유 하고자 하는 경우에 이용한다. -> 공유 파일 이용 방법 -> CFile 클래스 이용 # 소스 코드 struct SHAREDFILEDATA { int AAA; int BBB; }; - 데이터 변경 CString strFileName = _T("D:\\SharedMemFile.XXX"); CFile *pFileMem = new CFile; if (pFileMem) { if (pFileMem->Open(strFileName, CFil..
# 일반적으로 프로세스간의 데이터를 공유하는 방법 -> IPC : Inter-Process Communication - 윈도우 메시지 전달 방법 - TCP/IP 통신 이용 방법 - 공유 메모리 이용 방법 - 공유 파일 이용 방법 - 등등 # 2개의 서로 다른 프로세스에서 특정한 데이터를 공유 하고자 하는 경우에 이용한다. -> 공유 메모리 이용 방법 -> WinAPI ( CreateFileMapping[생성], OpenFileMapping[연결], UnmapViewOfFile[해제] ) 함수를 이용 # 소스 코드 #define SHARED_MEM_NAME _T("shared_mem_test") struct SHAREDMEMDATA { int AAA; int BBB; }; - 생성 m_hHandle = C..
# 일반적으로 프로세스간의 데이터를 공유하는 방법 -> IPC : Inter-Process Communication - 윈도우 메시지 전달 방법 - TCP/IP 통신 이용 방법 - 공유 메모리 이용 방법 - 공유 파일 이용 방법 - 등등 # 2개의 서로 다른 프로세스에서 특정한 데이터를 공유 하고자 하는 경우에 이용한다. -> 윈도우 메시지 전달 방법 -> WM_COPYDATA 구조체를 이용 # 소스 코드 HWND process = ::FindWindow(NULL, _T("XXXXXX")); // 찾는 process 이름 if (process != NULL) { CString Value = _T("1"); // 전송하는 데이터 값 COPYDATASTRUCT data; data.dwData = 0x9999..
# 데이터를 보고 직관적으로 빠르게 파악하여 판단하기 위함 # 공개용 차트 뷰어(ChartDirector)이며, 만료 날짜 없이 제품 평가를 위해서 모든 제품 다운로드 가능 > dll 파일 다운로드 - https://www.advsofteng.com/download.html # 운영체제별로 dll 을 별도로 제공하고 있으며, 32bit/64bit 도 별도로 구분해서 제공하고 있음 > static library 형태는 제공하지 않음. # 관련 dll 파일 다운로드 후 Solution 에 추가하여 연동하면 바로 적용 가능 > 관련 기능에 대한 자세한 사항은 도움말을 참고 > 리소스 뷰어 설정 - Picture Control 추가 하여 Bitmap 으로 Type 을 변경 - CChartViewer 와 연결되는..
# 프로그램 상시 운영 > 대상1 : 개발 관련으로 주 특기를 갖고 계신 분 ( 직장인, 취업준비 ) > 대상2 : 대전 지역에서 학교를 다니고 있는 대학생 ( 대학생 ) > 대상3 : 대전 지역에서 학교를 다니고 있는 학생 ( 초/중/고 ) # 프로그램 연결 방법 > Open Chat 방 URL : https://open.kakao.com/o/gwiYAiId > Open Chat 방에 내용 기록 # 대학생 > 전공 관련 과정을 졸업(취업준비) / 수료하신 분 : 2년제의 경우에는 1년 과정 수료하신 분 > 비 전공자의 경우 : 기본 학습(교과서)이 되어 있으신 분 또는 기본 학습을 얻고자 하시는 분 # 직장인 > 취업 후 경력 3년 이하 ( 전공 관련 과정을 수료/졸업 하신 분 ) > 비 전공자의 경우..
# OpenCV 웹 사이트에 접속한다. # Library - Release 를 선택한다. > MFC ( CPP ) 용 dll 을 확보한다. # 현재 상태에서 최신 버전을 선택한다. # exe 파일을 더블클릭으로 unzip 수행한다. # Visual Studio 버전에 맞도록 dll 과 lib 를 선택한다. > VS2017 : x64 - vc14, VS2019 : x64 - vc15 중에 선택 > bin 파일 : opencv_world453.dll, opencv_world453d.dll > lib 파일 : opencv_world453.lib, opencv_world453d.lib > include 폴더 > build - include 를 선택 opencv2 존재함.
PC 환경(Windows10, Windows10pro)에서 MFC 개발 환경(IDE)을 구성하기 위해서는 MS 에서 제공하는 Visual Studio S/W 를 설치 해야 한다. 1. Visual Studio 사이트 검색 2. Visual Studio 사이트 진입 3. Download Visual Studio - Community 2019 클릭 # Community 의 경우에는 학생, 오픈 소스 기여자 및 개인을 위해서 무료로 공개 되어 있다. # Professional 은 소규모 팀, Enterprise 은 대규모 팀을 위한 기업용으로 구독이 있는 경우 유용하다. 4. Visual Studio Installer 를 설치하고 개발 환경을 선택한다. # C++ 를 사용한 테스크톱 개발 5. 설치 끝! # ..
MFC(Microsoft Foundation Class Library)는 C++용 프로그램 라이브러리이다. 윈도용 응용 프로그램의 통합 개발 환경인 마이크로소프트 비주얼 C++에 부속되는 클래스 라이브러리이다. Visual Studio 5.0 ~ Visual Studio 19 까지 지속적으로 지원하고 있다. 1. Visual Studio 97 (5.0) 2. Visual Studio 6.0 3. Visual Studio.Net (2002) (7.0) 4. Visual Studio.Net 2003 (7.1) 5. Visual Studio 2005 (8.0) 6. Visual Studio 2008 (9.0) 7. Visual Studio 2010 (10.0) 8. Visual Studio 2012 (11.0..