전체 글
-
[C# / WinForm] HWP to IMAGE, 한글문서 이미지 변환Programming/C#, WPF 2019. 7. 30. 23:49
hwp의 확장자를 갖고있는 한글문서를 이미지로 변환하는 작업을 시도해보려고 합니다. 저는 WPF를 주로 사용하기 때문에 WinForm은 익숙하지 않지만, 해당 프로젝트는 WinForm으로 작업했습니다. 그 이유에 대해서는 아래에서 이야기 하도록 하겠습니다. 우선은 기능이 정상적으로 동작하는지 확인하는 것이 목표이기 때문에 WinForm프로젝트로 간단하게 구현해봤습니다. 추후 WPF나 다양한 용도로 사용할 수 있도록 라이브러리 프로젝트로 만들수 있는지 시도해보겠습니다. 작업순서 작업순서는 다음과 같습니다. 한글 설치 확인 WinForm프로젝트 생성 한글Control 추가 (COM 구성 요소) 코드작성 확인 한글 설치 확인 프로젝트 진행에 앞서 개발PC에 정품 라이센스가 인증된 한글 프로그램이 설치되어있는지..
-
-
[WPF] Bitmap to Image ConverterProgramming/C#, WPF 2019. 5. 26. 03:14
Converter에서의 이미지 변환후 메모리 해제는 자동으로 이루어지지 않습니다. 꼭 GC.WaitForPendingFinalizers(); 를 호출하여 메모리 해제를 해줘야 합니다. GC.Collect 만으로는 제대로 해제되지 않습니다. 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 [System.Runtime.InteropServices.DllImport("gdi32.dll")] private static extern bool DeleteObject(IntPtr hObject); public object Convert(object value, Type targetType, object parameter, System.G..
-
[C] malloc, calloc, realloc을 이용한 메모리 동적 할당Programming/C언어 2014. 6. 26. 00:31
동적할당을 사용하는 이유는 무엇일까? c언어의 메모리 구조에 대해서 알고 있다면 동적할당을 사용하는 이유를 쉽게 알 것이다. 2014/06/26 - [Programming/C언어] - [C] 스택(Stack), 힙(Heap), 데이터(Data)영역 malloc 함수 - 동적으로 메모리를 할당하는 함수 (힙 영역에 메모리를 할당) #include void* malloc(size_t size)// malloc 함수의 원형 함수 호출시 할당하고자 하는 메모리의 크기를 바이트 단위로 전달하면 그 크기만큼 메모리를 할당하게 된다. 그리고 할당한 메모리의 주소(첫 번째 바이트의 주소)를 리턴한다. 메모리 할당에 실패하면 NULL이 리턴된다. 리턴형이 void*(void 포인터) ?? malloc은 단순히 메모리만 ..
-
[C] 스택(Stack), 힙(Heap), 데이터(Data)영역Programming/C언어 2014. 6. 26. 00:20
C언어의 메모리 구조 프로그램을 실행시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리 공간을 할당해준다. 할당되는 메모리 공간은 크게 스택(Stack), 힙(Heap), 데이터(Data)영역으로 나뉘어진다. 이러한 메모리 공간이 어떠한 용도로 언제, 어디서 할당되는지 알아보도록 하자. 할당 시기 : 프로그램이 실행될 때마다할당 장소 : 메인 메모리(RAM)할당 용도 : 프로그램 실행 시 필요한 메모리 공간(지역변수, 전역변수 선언을 위해) 할당 데이터(Data) 영역 - 전역 변수와 static 변수가 할당되는 영역 - 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리에서 소멸됨 #include int a = 10;// 데이터 영역에 할당 int b = 20;// 데이터 영역에 할당..
-
[MFC] 컴퓨터 화면 캡쳐해서 출력하기Programming/MFC 2014. 6. 11. 00:48
컴퓨터의 모니터 화면을 캡쳐하여 출력 CDC memDC; CBitmap bitmap; int cx, cy;// 화면의 크기를 구하기 위해서 // 주 모니터 화면 cx = GetSystemMetrics(SM_CXSCREEN); cy = GetSystemMetrics(SM_CYSCREEN); // 듀얼 모니터 사용시 전체화면 //cx = GetSystemMetrics(SM_CXVIRTUALSCREEN); //cx = GetSystemMetrics(SM_CYVIRTUALSCREEN); CClientDC dc(this);// dc선언해주고 (this)에 화면을 출력하기 위해선언 CClientDC ScreenDC(GetDesktopWindow());// 스크린DC 선언 memDC.CreateCompatibleDC..