목록프로그래밍 (88)
개발자 블로그
프로그램을 좀 더 이쁘게 꾸미고 싶어서 텍스트박스에 배경이미지를 넣고 싶었는데, C#의 텍스트박스는 기본적으로 배경이미지(Background Image)를 지원하지 않는다. 구글링을 통해서 몇 가지 방법을 찾았는데 딱히 적당한 방법이 없어서 일단은 배경이미지 없이 개발하기로 마음먹었다. 추후 다시한번 검토를 해본 뒤 적용할 예정이다.나중에 다시 구글링 하는 수고를 덜기위해서 찾아놓은 방법들을 정리해본다. 다만, 사전조사 차원에서 찾아본 것이라서 내용이 약간(?) 부실 할 수 있다. 추가적인 정보가 필요한 경우에는 링크를 참조하거나 관련 키워드로 검색해보면 될 것 같다. 1. Textbox 상속을 통한 paint 이벤트 오버라이드 TextBox를 상속받아서 새로운 TextBox를 만드는 방법. OnPain..
bson - http://www.mongodb.org/downloads Copyright ⓒ 2015 MongoDB, Inc. Apache License 2.0 > Binary JSON, JSON 문서를 바이너리로 인코딩한 포맷, 몽고DB에서 사용 Code Project - LiteZip and LiteUnzip - http://www.codeproject.com/KB/library/LiteZip.aspx Copyright ⓒ 1995-2012 Jean-loup Gailly and Mark Adler, Lucian Wischik, Jeff Glatt GNU Lesser General Public License v3.0 only > zip 파일 압축 및 해제 GSM Codec 06.10 - http://k..
켄트 벡의 구현 패턴, 부제는 "읽기 쉬운 코드를 작성하는 77가지 자바 코딩 비법" 이다. 실제 저자가 개발을 하면서 쌓인 경험을 토대로 어떻게 코딩을 해야 그 코드를 쉽게 읽을 수 있는지에 대해서 설명하고 있다.구현 패턴이라 함은.. 코딩 규칙(code convention)과 디자인 패턴의 중간정도라고 봐야될까? 글쎄,, 내가 이 책을 100% 이해했으면 조금 더 자세한 이야기를 쓸 수 있을 것 같은데 1/4도 이해 못 한것 같다... 일단 이 책은 자바언어로 되어있다. 나는 학부생 때 이후로는 자바를 이용해본적은 거의 없지만 이 책을 이해하는데 있어서 문법적인 부분은 크게 문제가 안된다. 다만 어떤 개념을 설명할 때 자주 예시로 언급되는게 "JUnit"인데 나는 이 "JUnit"이 뭔지 자세히 몰라..
이미지 저작 툴.. 이라는 용어가 맞는지는 잘 모르겠는데,, 일단 개발한 프로그램은 텍스트를 입력하고, 사진의 경로를 입력하면 최종적으로 입력한 글과 사진을 조합해서 하나의 이미지 파일로 만들어주는 그런 프로그램이다.뭐,, 프로그램도 같이 공개하고 싶은데,, 공개할정도로 완성도 있게 개발도 안되었고,,(디자인 작업이 너무 크다,,ㅠㅠ) 공개할만큼 범용적으로 쓸 수 있는 그런 프로그램도 아니라서,,혹시 나중에 필요해지면 그 때 조금 다듬어서 공개를 해볼까 싶다.아래 링크는 개발하면서 참고했던 사이트들이다. http://infodbbase.tistory.com/109 PictureBox 컨트롤의 이미지를 파일로 저장 https://msdn.microsoft.com/ko-kr/library/baw6k39s(v..
C#에서 윈폼 프로그래밍에서..안내메시지 같은 문자열을 소스에 직접 넣은 것 보다 리소스 파일(Resources.resx)을 이용하면 개발할 때는 조금 번거로울지 몰라도 나중에 수정하거나 유지보수 할 때 매우 편하다. 한 줄 짜리 메시지가 아니라 여러줄로 구성 된 문자열의 경우, 개행문자는 Shift + 엔터로 넣어주면 된다. (소스에 넣을 때 처럼 \n 문자를 이용하지 않는다.)참고로 내가 사용하는 Visual Studio 버전은 2015 커뮤니티 에디션.
C# Winform의 FormBorderStyle을 None으로 설정한 경우(또는 CreateParams를 통해서 WS_CAPTION 스타일 속성을 제거한 경우) 창을 최대화하게 되면 작업표시줄까지 덮어버리는 문제가 생긴다. 최대화 버튼을 클릭했을 때, 아래 코드를 사용해서 창을 최대화 시키면 이러한 문제가 발생하는데 Form.WindowState = FormWindowState.Maximized; 대략 두 가지 해결 방법이있다. 1. 직접 사이즈를 설정 말 그대로 폼의 사이즈를 직접 입력한다. 시스템속성을 통해서 WorkingArea를 조회 한 뒤에 해당 크기로 폼의 크기를 설정한다. 예제 코드는 아래 링크를 참조. http://www.devpia.com/MAEUL/Contents/Detail.aspx..
C# 윈폼 프로그래밍에서 사용자가 지정한 마지막 창 크기 및 위치 같은 정보를 저장하기 위해서 간단하게 ini 파일을 사용하기로 결정했다. winapi에는 이러한 기능을 하는 간단한 api가 있지만 C#에서 기본으로 제공하는 클래스에는 해당 기능을 하는 api가 없다. 하지만 해당 winapi를 import해서 사용할 수 있다. ※ 만약 신규로 프로젝트를 만드는 것이라면, Settings를 활용하자. 매우 편리하게 각종 설정항목을 저장할 수 있다. 사용방법도 정말 간편하다. 아래 유튜브 동영상 한 번 보면 바로 따라서 사용할 수 있다. ini 대신 아래 방법을 사용할 것을 적극 권장한다. 아래 링크에서 해당 api를 import해서 사용하는 클래스 예제를 확인할 수 있다. http://kindtis.ti..
Windows 환경에서 Objective-c 개발환경을 구축하기 위한 GNUstep 설치에 관한 내용입니다. 일단 GNUstep 설치 프로그램을 다운받습니다.아래 링크를 클릭하면 다운로드를 위한 사이트로 이동합니다. ※ GNUstep 다운로드 ☞ http://www.gnustep.org/windows/installer.html 스크롤을 조금 내려서 빨간색 박스에 있는 세 개의 파일을 다운 받습니다. GNUstep MSYS SystemGNUstep CoreGNUstep Devel GNUstep Devel은 Optional이라고 되어있지만, 해당 파일을 설치하지 않으면 gcc가 설치되지 않아서 나중에 컴파일할 때 'gcc command not found' 라는 에러메시지를 보게 됩니다. 설치가 모두 완료되면..
내가 좋아하는 시리즈다.'ㅇㅇㅇ이 보이는 그림책' 시리즈일단 책이 얇고 그림도 많아서 가볍게 볼 수 있다.당연히 깊은 내용은 다루고있지 않고, 내용은 수박 겉 핥기 식이지만. 내가 좋아하는 공부방법이다.일단 쉬운책으로 가볍게 보면서 대략적인 개념을 잡고, 그 뒤에 두꺼운 책으로 다시한번 본다. 처음 공부했던 프로그래밍 언어인 'C언어'도 이런식으로 입문했다.'C가 보이는 그림책'이 내가 처음 본 책이었고, 그 뒤에 'Teach yourself C'로 깊은 내용까지 파악한다. 일단 내용은 전반적인 부분을 가볍게 다루고 있다. Java 언어에 대한 섹션도 있지만.. 자바만 해도 두꺼운 책 한 권 분량인데.. 여기서 다뤄봤자 얼마나 다루겠는가..기본적으로 Java 언어는 알고있는 상태에서 보기를 추천한다. 안..
이것이 안드로이드다 - 박성근의 안드로이드 앱 프로그래밍표지만 보면 게임개발 관련된 책이 아닌가 싶지만 게임과는 전혀 관련없는 안드로이드 개발 입문서이다.안드로이드 입문서를 찾던 중 네이버 평점이 꽤 높길래 구입하게 됐다. 안드로이드로 책검색 했을 때 판매량순으로 네 번째에 랭크되어있다. 글 제목에 썼듯이 이 책은 안드로이드 입문자를 대상으로 한 책이다. 책에서 사용 된 예제들도 정말 쉽게 되어있다. 저자가 최대한 눈높이를 낮춰서 설명하려 노력한게 책에서 느껴진다. 몇 군데 중요한 오류가 있긴한데 저자의 카페를 통해서 정오표를 제공하기 때문에 일단 그 것 부터 확인하는걸 추천한다. 아무리 입문자를 대상으로 했다고는 하지만 기본적으로 프로그래밍 경험이 없으면 곤란하다. Java 언어는 기본적으로 알고있는 ..
안녕하세요~ 영상처리 강좌 열 번째 시간입니다~! 이전 시간에는 컬러영상을 읽는 방법에 대해 배워봤는데요, 오늘은 예전에 흑백영상을 가지고 했던 실습들을 컬러영상을 대상으로 똑같이 적용시켜 보도록 하겠습니다. 오늘 강의는 이전에 배웠던 내용을 다시한번 복습한다는 생각으로 가볍게 봐 주셔도 될 것 같네요~ 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 우리가 지금까지 강의를 통해서 배웠던 내용은 크게 밝게, 어둡게, 색반전이동, 미러, 플립확대, 축소, 회전 이 정도로 분류할 수 있겠네요. 오늘 강의는 이전에 배웠던 내용들을 샘플 영상만 PGM 이미지에서 PPM 이미지로 바꿔서 실습을 하는 것이므로, 이론에 대한..
우리가 무언가를 배울 때, 가장 중요한것은 '배워서 어디에 써먹나?' 일 것 입니다. 이렇게 동기부여가 된다면 배우는데 좀 더 의욕이 생기지 않을까요? 그래서 오늘 쉬어가기에서는 영상처리에 우리 생활에서 어떻게 쓰이는지 딱 2가지 경우만 예를 들어볼까 합니다. 먼저 예전 뉴스에서 화제가 되었던 인물이죠. 아동성추행범 '닐' 이라는 놈 입니다. 우리나라에서도 2달간 영어교사를 했다고 밝혀져서 충격을 주기도 했었죠. 관련기사 보기 : http://article.joinsmsn.com/news/article/article.asp?total_id=2920137 성추행한 사진을 인터넷에 공개하고, 자신의 얼굴까지 아래 사진(왼쪽)처럼 알아보지 못하도록 조작해서 인터넷에 공개를 했는데요. 결국은 태국에서 붙잡혔습니..
안녕하세요~ 영상처리 강좌 아홉 번째 시간입니다~! 오늘 배워볼 내용은 PPM파일을 읽는 방법에 대한 것 입니다. 그 동안은 흑백사진만 가지고 해서 좀 아쉬운 부분도 있었는데, 오늘부터는 드디어 컬러영상을 가지고 배워보도록 하겠습니다. 자~ 그럼 PPM 파일은 어떻게 생겼는지 먼저 살펴보도록 하겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! PPM이란 Portable PixMap의 약자로 PGM, PBM과는 달리 컬러영상을 표현할 수 있습니다. 이 파일포멧에 대한 설명은 간단하게 나마 첫 번째 강의에서 언급을 했었고, 또 위키피디아에 굉장히 설명이 잘 되어있어서 그 링크로 대체하도록 하겠습니다. 위키피..
안녕하세요. 영상처리 강좌 여덟 번째 시간입니다~! 오늘 배워볼 내용은 회전(Rotation)과 보간법(Interpolation)에 대해서 입니다. 이전시간에 보간법에 대해서 살짝만 언급했는데 오늘 보간법의 종류와 알고리즘에 대해서 알아보고 지난시간에 약간(?) 부족했던 확대를 보간법을 적용해서 보완해보도록 하겠습니다. 그 전에 먼저 회전에 대해서 공부하고 보간법으로 넘어가겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 회전은 말그대로 이미지를 시계방향 또는 반시계방향으로 회전시키는 것 입니다. 이동, 확대, 축소와 마찬가지로 픽셀의 좌표만 새롭게 계산해주면 됩니다. 다만 이 계산식이 좀 복잡합니다....
안녕하세요. 영상처리 강좌 일곱 번째 시간입니다~! 오늘 배워볼 내용은 이미지를 내 마음대로 조작하는 처리에 대해서 입니다. 이전시간에 배운 내용은 픽셀의 이동 및 반전에 관한 내용이었고, 오늘부터 강의할 내용은 이미지 내 마음대로 움직이기 그 두번째! 바로 크롭(Crop), 축소, 확대에 대해서 알아보겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 먼저 크롭(Crop)이란 무엇인가에 대해서 먼저 알아보겠습니다. 크롭 [crop] ① 사진을 편집할 때 원하는 크기에 맞도록 그 사이즈를 트리밍(trimming)하는 것. 흔히 크로핑(cropping)한다고 말한다. 이러한 크롭을 할 때 자른 부분에 금(線..
안녕하세요. 영상처리 강좌 여섯 번째 시간입니다~! 오늘 배워볼 내용은 이미지를 이동시키는 것 입니다. 이전시간에 배운 내용은 이미지의 픽셀 값에 기반한 처리였었고, 오늘부터 강의할 내용은 이미지내 픽셀의 좌표값(x, y)에 기반한 처리 입니다. 먼저 오늘은 영상의 이동, 미러(Mirror - 좌우반전), 플립(Flip - 상하반전) 등의 처리에 대해서 알아보겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 이미지의 가로를 x, 세로를 y라고 편의상 지정하겠습니다. 기준점은 좌측상단이 되며, 이곳의 좌표값은 (0, 0) 입니다. 크기가 3 x 4인 영상(가로 3px, 세로 4px)을 예로들어 좌표값을 보..
안녕하세요~ 영상처리 강좌 다섯 번째 시간입니다~! 오늘 배워볼 내용은 이미지의 밝기를 조절하는 것 입니다. 이미지의 밝기를 밝게도 해보고 어둡게도 해보고 또 색을 반전하는 것 까지 한번 공부해보도록 하겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 우리는 이미 이전 강의를 통해서 살짝이나마 이미지를 밝게 하는 법에 대해서 배웠습니다. Gray 영상은 픽셀값이 0 ~ 255로 이루어져 있으며, 아래와 같은 색상체계를 가지고 있습니다. 즉, 0은 검정색, 255는 흰색입니다. 뭐, 이정도야 포토샵 몇 번 써보셨다면 다 알고 계실 것 입니다.(RGB역시 비슷한 구조이고요.) 결국 영상의 밝기를 밝게 한다는..
여러분은 레나(Lena 또는 Lenna)에 대해서 아시나요? 아마 이름은 처음 들어봤을지라도 아래 사진은 본적이 있을것 입니다. 영상처리(또는 신호처리)와 관련된 대부분의 책이나 문서에서 샘플 이미지로 많이 사용되는 이미지이죠. 저 이미지의 출처에 대해서 혹시 생각해보신 적이 있나요? 전 처음 C언어를 배울 때 "Hello world" 부터 찍어보듯이 영상처리를 할 때 그냥 기본적으로 사용하는 샘플 이미지로만 생각했었습니다. 나중에 원본사진을 보고 깜짝 놀랬던 기억이 있네요. 저 사진의 원본은 플레이보이(Play Boy)라는 잡지(다들 아시죠??ㅋ) 1972년 11월호에 실렸던 사진입니다. 모델의 이름은 '레나 쇠데르베리(Lena Soderberg)'로 스웨덴 여성이라고 합니다. 1988년 스웨덴 컴퓨터..
안녕하세요~ 영상처리 강좌 네 번째 시간입니다~! 오늘 강좌의 제목은 '실전! 이미지 읽어보기' 입니다. 이전 강의에서 만들고 배워봤던 PBM, PGM 파일들은 아스키(ASCII) 형식의 파일입니다. 오늘은 아스키가 아닌 헥사(16진수)로 이루어진 PBM, PGM 파일을 읽는 방법에 대해 알아보도록 하겠습니다. 본 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. (새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! PGM이나 PBM 파일 형식을 지원하는 이미지 편집기에서 PGM, PBM 파일로 변환을 하게 되면 우리가 만들었던 아스키코드 형식의 텍스트 파일이 만들어지는 것이 아니라 바이너리 형식의 파일이 만들어집니다. 이렇게 되면 파일을 개방하는 방법부터 읽는 방법까지..
아이폰 앱을 개발하기 위해서 사용하는 언어인 Objective C. 이 언어를 알아보고자 빌려 본 책이다.C언어야 뭐 대학교1학년 시절부터 지금까지도 계속해서 사용하고있는 언어인지라.. 예전에 봤던 '열혈강의 C++' 책 처럼 C는 이미 알고있고 독자를 대상으로 하는 그런 책을 원했었는데그런 책은 아니다. C언어를 모르고 봐도 되겠다 싶을 정도로 문법에 대한 분량이 꽤 많고다른언어와 대비되는 오브젝티브C언어의 특징이랄까? 뭐 그런 부분에 대한 분량은 조금 모자란 느낌이 있다.사실 이 언어를 다룬 책을 처음 본거라서,,, 비교가 좀 어렵긴 한데전체적인 책의 분량이 워낙에 적다보니깐 아무래도 깊은 부분에 대한 언급은 좀 생략된게 아닌가 싶다. 처음 프로그래밍 언어를 접하는 사람에게는 적합할지 모르겠는데글쎄,..
안녕하세요~ 영상처리 강좌 세 번째 시간입니다~! 오늘은 PBM 파일을 실제 프로그램에서 읽어들이는 방법에 대해서 설명드리겠습니다. PBM 파일과 PGM 파일을 읽는 법은 큰 차이가 없으므로, PBM 파일 읽는 법을 알고나면 PGM 파일 역시 마음껏 프로그램을 통해서 읽어들일 수 있을 것입니다. 강의는 PBM 파일을 중심으로 설명하고, 강의 마지막 부분에서 PGM 파일을 읽을 때 어떤 점이 달라지는지에 대해서만 설명 드리겠습니다. 혹시 이 강좌가 처음이신가요?? 만약 영상처리 강좌를 처음부터 보시려면 아래 링크를 클릭하세요.(새창) ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 본 실습에 사용 된 전체 소스코드는 본 강의의 하단에 첨부해 두었습니다. 바로 다운받아서 사용하..
안녕하세요. 영상처리 강좌 그 두번째 시간입니다~! 강좌를 처음부터 보시려면 아래 링크를 클릭하세요. ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! ■ 이미지 파일 포멧소개 그럼 먼저 본 강좌에 사용될 이미지 파일 포멧에 대해서 설명드리겠습니다. 본 강좌에서는 총 3개의 이미지 파일 포멧을 사용해서 실습을 진행하도록 하겠습니다. PBM(Portable BitMap) : 흑백영상 PGM(Portable GrayMap) : 그레이영상 PPM(Portalble PixMap) : 컬러영상 각 파일의 헤더는 아래와 같은 구조로 이루어져 있습니다. 매직넘버 : 파일유형이 무엇이며 데이터가 어떻게 저장되어 있는가를 정의 영상의 너비(Width) 영상의 높이(Height) 최대값 : 최..
안녕하세요~! 드디어 영상처리 기초 강좌의 첫 번째 시간입니다. 이전 강좌를 보시려면 아래 링크를 클릭하세요. ☞ 2015/08/10 - [영상처리강좌] - 영상처리 강좌를 시작합니다~!! 본격적인 시작에 들어가기 전에 미리 밝혀둘 것이 있습니다. 이전 강좌에서 언급했듯이 전 영상처리 관련 분야에서 일하거나 해당 분야를 전공으로 한 사람은 아닙니다. 다만 대학생 시절에 가장 재미있게 들었던 수업이고, 항상 흥미를 가지고 있었기에 한번 영상처리 강좌를 해보자라는 생각을 한 것 입니다. 당연히 올바른 정보전달을 위해 노력하겠지만 만에하나 잘못된 정보가 있을 수도 있을 것 입니다. 만약 그러한 부분이 있다면 꼭 지적해 주시고 또 너그럽게 이해해 주시길 부탁드리겠습니다~ 그럼 첫 번째 강좌를 시작하도록 하겠습니..
■ 개요 비록 미숙한 실력이긴 하지만 그래도 대학교 때 가장 흥미를 가지고 공부했었던 분야이기도 하고, 또 누군가에게 도움이 되었으면 하는 마음에서 이 강좌를 시작하게 되었습니다. 강좌는 총 12회를 예상하고있지만 강의가 진행되면서 좀 더 늘어날 수도 있을 것 같네요. ■ 이 강좌는 누굴 대상으로 하는가? 대상은 C언어를 마친 초보자를 대상으로 하고 있습니다. 이미 이 분야에 대한 공부를 한 경험이 있으신 분이라면 내용이 너무 간단하게 느껴질 수 있을 것 같네요. 이미 프로그래밍에 익숙한 분이라도 영상처리에 관심이 있으시다면 대 환영입니다. ■ 알고 있어야 하는 지식은? 본 강좌는 C언어를 이용해서 진행할 예정입니다. 어떠한 운영체제를 사용하셔도 무방합니다만, 제가 사용하는 환경이 Windows XP라서..
개발환경을 32bit WindowsXP에서 64bit Windows7으로 넘어오고 난 뒤, 레지스트리 관련해서 한참을 헤맸던 적이 있다. 분명 HKLM\SOFTWARE\(키값) 위치에 있어야 할 레지스트리값들이 전혀 보이지 않는 것이었다.그런데 놀랍게도 프로그램은 내 의도대로 정상적으로 작동하고 있었다.. 하.. 멘붕.. 이게 어떻게 된 일인가 했는데.. 알고보니 64bit OS에서 32bit 어플리케이션을 동작시키게 되면 레지스트리 읽고/저장하는 위치를 OS에서 리다이렉션 시켜버린다. OS가 알아서 해주는 부분이기 때문에 사용자나 개발자 입장에서 따로 조치를 해줘야 되는 부분은 아니다. (뭐 경우에 따라서는 문제가 생기기도 할 것 같다.)리다이렉션 되는 위치는 HKLM\SOFTWARE\Wow6432No..
윈도우 프로그램에서 시스템 날짜를 변경해야 하는 경우, 해당 기능을 하는 소스코드. 아래 예제는 시스템의(운영체제) 날짜를 2014년 2월 1일로 변경함. (원하는 경우 시간도 변경 가능) SYSTEMTIME new_time; // windows system 날짜 변경 GetLocalTime(&sys_time); new_time = sys_time; /* TCHAR buff[1024]; swprintf(buff, _T("%d년, %d월, %d일"), new_time.wYear, new_time.wMonth, new_time.wDay); MessageBox(buff); */ new_time.wYear = 2014; // 원하는 날짜 new_time.wMonth = 2; new_time.wDay = 1; S..
아주 잘 정리된 페이지가 있어서 링크로 대체함.영어라서 좀 그렇긴한데.. 크게 어려운 내용은 없고 어차피 코드가 중요하니깐.. 아래 링크에서는 총 3가지 방법을 소개하고 있는데난 첫 번째 방법을 사용했음(참고로 저자가 추천하는 방법은 아니라고 함. GetAdaptersInfo를 사용하기를 추천하고 있음.)이유는 어차피 키 생성을 목적으로 단지 유니크한 시드값을 원했기 때문에가장 코드가 단순한 첫 번째 방법을 사용(UuidCreateSequential)여러개의 네트워크 어탭터가 있다 하더라도해당 함수로 얻을 수 있는 MAC address는 하나밖에 없다는점을 유의 ※ 관련글 보기 ☞ Three ways to get your MAC address.
MFC에서 날짜 계산을 하기 위해서 CTimeSpan을 사용한다.하지만 CTimeSpan 클래스의 생성자는 최대 날짜단위의 계산을 제공한다.그러니깐, 180일 전후의 날짜를 얻을 수는 있지만, 3개월 또는 6개월 뒤의 날짜를 얻기 위해서는 별도의 계산을 해야된다. 여기서 고려해야 될 사항은월마다 일 수가 각각 다르다는 점(30일, 31일)윤년을 고려해야 된다는 점이렇게 있다. 윤년의 계산방법은 아래와 같다.년(year)을 4로 나눠서 나누어 떨어지면 윤년다만 100으로 나누워서 떨어지면 윤년아님다만 400으로 나누워서 떨어지면 윤년 이런 사항들을 고려해서 만든 fnAddMonth 라는 함수다.CTime fnAddMonth(CTime& _time, int _month) { CTime new_time; ne..