기본 콘텐츠로 건너뛰기

5월, 2012의 게시물 표시

MFC에서 chm파일 연동하는 방법[펌]

MFC에서 chm파일 연동하는 방법 2010/06/11 11:55   Programming Language/MFC Tool : VC++ 2008 sp1 OS : WindowsXP sp3 프로젝트 생성시 Dialog base로 생성 했습니다. 특별히 손댄건 없고, Dialog base로 설정하고 ActivX만 뺐어요. (ActiveX는 뭔지 몰라서 빼버린;;; 모르는건 쓰지 말자는 주의라서;;;) 먼저 Dialog class에서 WM_HELPINFO 를 재정의 합니다. BOOL CHelpFileDlg::OnHelpInfo(HELPINFO* pHelpInfo) <- 요딴 메소드(함수)가 생기죠? 이 메소드(함수)에서, ::HtmlHelp(this->m_hWnd, szFilePath, HH_DISPLAY_TOPIC, 0); 요런식으로 호출 해 주면 됩니다. 단!!! 아주 중요한게 있습니다. #pragma comment(lib, "Htmlhelp.Lib") 요게 들어 가야 한다는거~~~ 이거 빼고 컴파일 하시면 엄청난(?) 일이 발생합니다. 컴파일 못한다고 배 째라고 합니다. -_-;;; 당연한 일입니다. 함수 선언은 했지만, 함수를 호출 할 위치를 모릅니다. (함수 선언은 HtmlHelp.h 파일에 선언이 되어 있고, 특별히 헤더파일을 include 하지 않아도 어느 포인트인진 모르겠지만 추가가 되어 있네요;;) 하지만 문제는 구현부가 없다는거~ 함수를 선언은 했지만 구현부가 없기에 호출을 못하니 컴파일러는 당연히 “배째~” 이럽니다. 일단... 제가 테스트 한 풀 소스를.......올리긴 무의미해 보이고, 함수만 올립니다. BOOL CHelpFileDlg::OnHelpInfo(HELPINFO* pHelpInfo) {     BOOL    res = TRUE;     CString    szFilePath;     CWnd*    wnd;     WCHAR  

압축

제가 압축 프로그램을 처음 봤을 때는 93년 여름이었습니다. 처음 압축 프로그램을 접했을 때 5.2 2000년에 작성한 글입니다. 제가 압축 프로그램을 처음 봤을 때는 93년 여름이었습니다. 처음 압축 프로그램을 접했을 때 5.25“디스켓에 다 들어가지 않던 데이터나 프로그램이 압축되어 다 들어갈 때 정말로 신기했고 재미있어서 제 친구들한테 이야기도 많이 하고 돌아 다녔죠. 어느덧 시간이 흘러 MS-DOS에서 윈도우로 넘어가고 인터넷의 등장으로 압축이 아주 중요하게 되었죠. 그 느려터진 인터넷으로 자료를 주고받을 때 자료의 크기를 조금이라도 줄여서 이동시키는 것이 요금도 절약되고 신경에도 좋죠. 제가 압축에 대해서 공부를 하게 된 것은 리눅스 상에서 프로그램 공부를 하던 중 WINZIP과 같은 압축 프로그램이 없어서 불편을 느끼게 되었죠. 목마른 놈이 우물을 판다고 압축에 대해 공부도 하고 또한 WINZIP과 같은 프로그램을 만들고 싶었죠. 그래서 자료도 찾고 했지만 압축에 대한 서적은 거의 없더군요. 어렵사리 인터넷에서 구한 자료를 연필로 줄 그어가면 공부를 했습니다. 자 이제 제가 조금이라도 알고 있는 것을 풀어 놓고자 합니다. 압축이란 그리 어려운 방법은 아닙니다. 많이 쓰이고 있는 zip, arj, rar, gzip.. 등은 모두 같거나 비슷한 방식으로 압축을 수행합니다. 하지만 자기들 나름대로 수행 속도나 어떻게 하면 조금이라도 쥐어 짤 수 있을까를 고민한 끝에 약간의 변형과 변칙(?)을 수행하고 있습니다. 1. RUN-LENGTH 가장 간단한 방식이죠. 즉 연속으로 나타나는 문자를 연속되는 숫자 + 문자로 표현하는 방식이죠. 제가 알기로는 BMP나 PCX파일에서 이러한 방식을 했습니다. 하지만 그리 압축률이 높지 않아서 요즘은 거의 쓰이지 않습니다. Example of run-length coding of digital image Digital image___________________________