일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Encapusulation
- Contour
- sensor
- Barcode
- atmega328
- 3D
- memory
- length
- preprocessing
- UNO
- Class
- flutter
- file access
- public
- aduino
- c++
- inheritance
- Pointer
- digitalRead
- mfc
- APP
- Read
- parameter
- SERIAL
- wpf
- Android
- stream
- compare
- java
- Unity
- Today
- Total
목록전체 글 (318)
폴크(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..
원주율 π (pi ≈ 3.141592...)를 수학적인 수식으로 근사할 수 있는 여러 가지 방법이 있습니다. 대표적으로는 다음과 같은 수식들이 있습니다: #include #include // 아크탄젠트의 테일러 급수 확장으로 arctan(x) 계산 double arctan(double x, int terms){ double result = 0.0; double numerator = x; double denominator = 1.0; bool sign = true; for (int i = 0; i { if (sign) result += numerator / denominator; else ..
LockFileEx는 Windows API에서 파일의 일부 또는 전체에 대해 동기적 또는 비동기적 잠금 (lock) 을 설정하기 위해 사용되는 함수입니다. 이는 여러 프로세스 또는 스레드가 동일한 파일을 동시에 열 때 데이터 손상이나 동기화 문제를 방지하는 데 필수적입니다.함수 시그니처BOOL LockFileEx( HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped ); 매개변수 설명파라미터설명hFile잠금을 설정할 파일 핸들. CreateFile로 얻은 유효한 핸들이어야 하며 FILE_SHARE_* 플래그 설정에 ..
Named Pipe 방식 (CreateNamedPipe)1. 개요Windows에서 제공하는 고속 메모리 기반 IPC (Inter-Process Communication) 방식프로세스 간 실시간으로 스트림 혹은 메시지를 전송할 수 있음파일처럼 보이지만 진짜 파일은 아님구성 요소서버 프로세스:CreateNamedPipe 로 파이프 생성ConnectNamedPipe 로 클라이언트 연결 수신클라이언트 프로세스:CreateFile 로 파이프에 연결WriteFile, ReadFile 로 데이터 송수신동작 흐름서버가 \\.\pipe\MyPipe 라는 파이프를 생성클라이언트가 해당 파이프에 연결 시도연결 후 실시간 데이터 전송 가능 (버퍼 기반)장점실시간성 우수 (메모리 기반 통신)디스크 접근이 없어 빠름읽기/쓰기 작..
공유 파일 방식 (Shared File Method)1. 개요파일을 공유 폴더(네트워크를 통해 접근 가능한 폴더)에 저장하고, 다른 PC가 이를 읽거나 수정하는 방식Windows의 SMB (Server Message Block) 프로토콜을 이용해 구현됨구성 요소공유 폴더 설정: 특정 경로를 공유하도록 설정 (\\192.168.0.101\SharedData)파일 입출력 API: C++에서는 CFile, CStdioFile, 또는 fopen, ifstream 등을 사용동작 흐름PC A가 공유 폴더를 설정하고 data.txt를 만듦PC B는 해당 경로를 통해 파일에 접근 (\\PC-A\SharedData\data.txt)두 PC가 파일에 순차적으로 접근하여 데이터 읽기/쓰기장점구현이 간단하고 직관적파일 내용이..
두 대의 PC가 네트워크 드라이브를 통해 공유된 폴더에서 파일을 생성하고, 메시지를 주고받을때 아래과 같이 예외(Exception)가 발생할 수 있다.원인파일이 아직 완전히 생성되지 않았을 때 접근파일 작성이 끝나기 전에 다른 PC에서 접근하면 IOException이나 FileNotFoundException이 발생할 수 있습니다.버퍼링 및 파일 캐싱 문제파일 시스템에서 파일 생성 직후에 바로 디스크에 반영되지 않아 접근 시 에러가 발생할 수 있습니다.파일 잠금 (File Locking)한쪽 PC에서 파일을 아직 닫지 않은 상태일 경우, 다른 PC가 파일을 읽으려 할 때 "사용 중" 예외가 날 수 있습니다. 방안 텍스트 파일 생성 → 완료 메시지 전송 → 수신 측에서 파일 안정성 체크 후 → 파일 읽기원본..