모종의 음모/Notepad22009. 1. 4. 00:18
Visual Studio Debugger How to: Launch the Debugger Automatically

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution options

위의 키는 현재 notepad2.inf에서
(아마도) C:\WINDOWS\NOTEPAD.EXE(혹은 C:\WINDOWS\SYSTEM32\NOTEPAD.EXE)를
대체해서 실행하도록 하는 용도로 쓰이고 있다. (도대체 어느 녀석이 어느 녀석이지?)
하지만 원래 용도는, 프로그램 실행중에 죽는 경우에 디버깅을 하기 위한 방법으로 사용하는 것 이라고 한다.

[참고 : http://byung.egloos.com/3572751]
[참고 : http://www.osix.net/modules/article/?id=781]
[출처 : http://msdn.microsoft.com/en-us/library/a329t4ed.aspx]


WindowsXP SP2 에서 notepad.exe를 notepad2.exe로 교체 하는 방법에 대한 내용이다.
여기서 건진 키워드는 WFP (files protected by Windows File Protection)
[출처 : http://weblogs.asp.net/rweigelt/archive/2004/08/12/213085.aspx]

WFP는 Windows2000 부터 지원하고 있으며 C:\WINDOWS\SYSTEM32\dllcache 폴더 그리고 레지스트리와
연관이 되어 있다

WFP 기능의 작동 방법

WFP 기능은 두 가지 메커니즘을 사용하여 시스템 파일을 보호합니다. 첫 번째 메커니즘은 백그라운드에서 실행됩니다. 이 보호 기능은 WFP에 보호된 디렉터리의 파일에 대한 디렉터리 변경 알림이 나타난 후 실행됩니다. WFP에 이 알림이 나타나면 WFP는 어떤 파일이 변경되었는지 확인합니다. 파일이 보호되면 WFP는 카탈로그 파일에서 파일 서명을 찾아 새 파일이 올바른 버전인지 확인합니다. 이 파일이 올바른 버전이 아니면 WFP는 새 파일을 캐시 폴더(파일이 캐시 폴더에 있는 경우) 또는 설치 원본에 있는 파일로 교체합니다. WFP는 다음과 같은 순서로 해당 위치에서 올바른 파일을 검색합니다.
  1. 캐시 폴더(기본적으로 %systemroot%\system32\dllcache)
  2. 네트워크 설치 경로(네트워크 설치를 사용하여 시스템을 설치한 경우)
  3. Windows CD-ROM(CD-ROM을 사용하여 시스템을 설치한 경우)
WFP가 캐시 폴더에서 파일을 찾거나 설치 원본이 자동으로 발견되면 WFP는 이 파일을 자동으로 교체합니다.
[공식 : http://support.microsoft.com/kb/222193]

파일이 두개인 이유는 아마도 하위 호환성으로 인해서 기존의 하위 버전에서는 존재하지 않던
C:\WINDOWS\SYSTEM32 폴더의 호환성을 위해 C:\WINDOWS에도 notepad.exe를 놔두었다고 한다.
[출처 : http://labnol.blogspot.com/2006/03/why-two-notebookexe-files-in-windows.html]
Posted by 구차니
프로그램 사용/wiki2009. 1. 3. 10:41
 

간만에 시간도 조금 남아서 야심한 밤에 XAMPP에 MediaWiki를 설치하고,
MediaWiki의 위키 문법 편집기를 대체 할 FCKEditor를 설치 해볼려고 했다.

FCKEditor는 WYSIWYG 에디터로서, 포털 블로그에서 지원하는 편집기 처럼
HTML을 사용하지 않더라고 사진을 붙이고, 꾸밀 수 있는 웹 프로그램이다.

FCKEditor Logo 및 About 페이지

FCKEditor의 WYSIWYG 툴바

FCKEditor를 사용하지 않으면 어떻게 Wiki를 편집하게 되는지 궁금하신 분들을 위한 스샷

아무튼 저런 Wiki 문법은 익숙해지지 않은 사람들에게 있어서는 재앙이므로, WYSIWYG 에디터가 없다면
아무리 좋은 툴이라도 남녀노소 접근을 할 수 없다는 문제점이 있으므로, 효용성이 줄어 들게 된다.


MediaWiki 설치 시 요구 사항
Apache(버전 정보 표기 되어 있지 않음) 혹은 IIS 6.0 이상
PHP 5.0 이상 (5.1 이상 추천)
Mysql 4.0 이상
40MB 이상의 stroage / 256MB 이상의 memory
[출처 : http://www.mediawiki.org/wiki/Manual:Installation_requirements]

설치 버전 정보
XAMPP 1.7.0 - Apache 2.2.11 MySQL 5.1.30 PHP 5.2.8 include
MediaWiki 1.13.3
FCKEditor 2.6.3

XAMPP 설치 하기
다음 다음 다음 확인 누르면 기본값으로 C:\XAMPP 에 설치가 되고
htdocs(웹 페이지 저장 위치)는 C:\XAMPP\htdocs에 존재한다.

Control Panel에서 Apache, MySQL을 기동시켜 주면 준비 끝

MediaWiki 설치 하기
Step 1. 다운받은 MediaWiki의 압축을 해제해서 C:\XAMPP\htdocs\mediawiki 로 넣어 준다.
mediawiki 라고 했을 경우에, http://localhost/mediawiki로 접속하게 되므로 편한 이름으로 넣어 주면 된다.

Step 2. 위의 주소로 접속해서 install을 진행하다 보면 Mysql용 User / database를 요청하는데,
xampp의 경우 myphpadmin이 설치 되어 있으므로 이 곳에서 접속하여 user와 database를 생성해 준다.

FCKEditor 통합 하기
[FCKEditor + Mediawiki Installation : http://mediawiki.fckeditor.net/index.php/FCKeditor_integration_guide]

Step 3.  FCKEditor 통합 홈페이지의 plug-in과 FCKEditor를 다운 받는다.
http://www.fckeditor.net/nightly/FCKeditor_N.tar.gz 링크는 FCKEditor만 들어 있고
http://mediawiki.fckeditor.net/nightly/svn/mediawiki_fckeditor_ext_N.zip 링크는 extensions 와 FCKEditor 포함이고
extensions는 SVN을 통해서 받을 수 있다. 번거롭다면 mediawiki_fckeditor_ext_N.zip를 다운로드 한 후 최신 버전의
FCKEditor를 다운 받으면 된다.(SVN을 설치 하기 귀찮으니..)

Step 4. C:\XAMPP\htdocs\mediawiki\extensions 에 위에서 다운받은 것을 압축 해제 한다.

Step 5. C:\XAMPP\htdocs\mediawiki\LocalSettings.php 의 가장 마지막 줄에 아래의 것을 추가 한다.
 require_once( "extensions/FCKeditor/FCKeditor.php" );

Step 6. C:\XAMPP\htdocs\mediawiki\extensions\FCKeditor\plugins\mediawiki\fckplugin.js 파일에
 //      ['MW_Template','MW_Special','MW_Ref','MW_Math'],
          ['MW_Ref', 'MW_Special'],
['MW_Template','MW_Special','MW_Ref','MW_Math'],를 주석처리 하고
['MW_Ref', 'MW_Special'], 로 변경한다.
FCKeditor의 Toolbar 설정인데, 실제 작동이 하는지는 모르겠지만, 해주지 않아도 작동에는 이상이 없다.

MediaWiki의 하위 경로(extensions-FCKeditor)

fckeditor_config.js 파일의 수정 위치

공식 홈페이지
[XAMPP : http://www.apachefriends.org/en/xampp.html]
[MediaWiki : http://www.mediawiki.org/wiki/MediaWiki]
[FCKEditor : http://www.fckeditor.net/]

Posted by 구차니
Programming/C Win32 MFC2009. 1. 2. 11:20
array(행렬/배열)는 동일 타입의 변수를 나열한 것이다.
시작부분의 인덱스는 0이고 마지막 인덱스는 n - 1 이다.

즉, 행렬의 인덱스는 마이너스 값이 될 수 없다는 의미이다.

그런 이유로 array[idx] 에서 idx의 타입이 unsigned 형이 아니라면
이러한 경고를 출력해 주는 것이다.

[링크 : http://www.devolution.com/pipermail/sdl/2003-August/056006.html]
Posted by 구차니
개소리 왈왈2009. 1. 1. 15:09
원래 꿈을 잘 기억 못하는건지 안꾸는 건지는 모르겠지만,
아무튼 꿈을 잘 꾸지 못하는 체질(?) 인데 간만에 꿈을 꾸었다.

그런데 새해 첫날 부터 꿈이 왜 이따구지 ?!?!?




간단하게 요약 : 전화 받다가 전화기가 파직하는 소리가 나길래 터질꺼 같아서 던졌더니 터졌다.

'개소리 왈왈' 카테고리의 다른 글

칫솔님의 치약(응?)  (10) 2009.01.06
잉? 이거 뭥미?  (4) 2009.01.05
덤벼라 2009!!  (10) 2009.01.01
샨새교 산새교 tistory tisotry  (10) 2008.12.31
네이트온 피싱을 조심하세요  (0) 2008.12.27
Posted by 구차니
개소리 왈왈2009. 1. 1. 00:29
올해의 목표!!

1. 살빼기! 목표 -20kg
2. 무선설기기사 자격증 따기
3. AVR / 8051 중에 하나를 이용해서 간단한 로봇만들기
4. 토익 800 넘기기(유효기간 만료 저번 마지막 670)

원래 목표는 크게 잡는거임 ㅋㅋ


저의 블로그에 들러 주시는 모든 분들~~
"새해 복 많이 받으세요!!"






덧 1 : 새해에는 부디 MBLee.no.brain 바이러스의 치료제가 나오기를 기원합니다.

'개소리 왈왈' 카테고리의 다른 글

잉? 이거 뭥미?  (4) 2009.01.05
새해 첫 꿈  (8) 2009.01.01
샨새교 산새교 tistory tisotry  (10) 2008.12.31
네이트온 피싱을 조심하세요  (0) 2008.12.27
아니 왜 윈도우 / 리눅스 / 프로그램을 못 깔아?  (0) 2008.12.17
Posted by 구차니
개소리 왈왈2008. 12. 31. 00:48
이 죽일넘의 미칠듯한 오타 덕분에
내 단타 실력은 500을 넘어 가질 못한다 ㄱ-

프로글래머가 되면 원래 오타신이 강림하셔서 손떨림신과 동시에 온다고는 하지만
이건 좀 심하다 싶다. ㅠ.ㅠ


아무튼 곳곳에 글을 남기면서 왜 댓글 알리미에 안오나 고심했는데..
곳곳에 minimonk.tistory.com이 아니라 minimonk.tisotry.com 으로 남겼다


비러머글 OTL



잡솔 : 샨새교를 외웁시다!!! tistory 옥삼바리?!

잡솔2 : 헤드헌터에게서 메일이 날아 왔다.
그런데 놀란건, 내 이름과 메일을 어떻게 알았을까? 라는 점이다.

아무튼 헤드 헌터라고 하니까 이런 이미지가 떠올랐다.(잔인한!)
[출처 : http://www.ozanmora.com/gallery/Others/Head_Hunter.jpg]
Posted by 구차니
메모장을 대체 하기 위한 프로그램으로 notepad2 와 notepad++가 있다.

1. notepad2

2. notepad++


notepad++을 실행 만 시켜 봤는데, 상당히 화려하고, 먼가 기능이 매우 많아 보인다.
단순하게 용량을 비교 하자면 sourceforge notepad++ 프로젝트 에서 받은
최신 버전의 용량은 3.23MB (3,397,310 바이트)
그리고 압축이 해제된(ANSI/UNICODE 버전 두가지 포함)
디렉토리의 용량은 10.7MB (11,295,036 바이트) 이다.
그리고 실행하는데 시간이 약간 걸린다. 내 시스템에서 화면 나오는데 대략 1초 미만 정도로 추정된다.
[notepad++ 공식 : http://notepad-plus.sourceforge.net/uk/site.htm]

하지만 notepad2는
누르자 마자 실행이 되고, 용량은 한글판 최신 버전 기준 300KB 미만이다.
용량/속도 대비로는 notepad2가 상당히 우세하나, 눈에 보이는 기능이라던가 글꼴은 notepad++가 낫다.

메모장 대체라는 가벼운 용도라면 notepad2를
ultraedit 등의 에디터를 대체하는 용도라면 notepad++를 하는 것이 나을 듯 하다.
[notepad2 공식 : http://www.flos-freeware.ch/notepad2.html]
Posted by 구차니
Programming/C Win32 MFC2008. 12. 30. 00:48
open이 있으면 close가 있는 법. 레지스트리 역시 open / create를 했으면 close를 해주어야 한다.
hKey [in]

A handle to the open key to be closed. The handle must have been opened by the RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, RegOpenKeyTransacted, or RegConnectRegistry function.


Remarks

The handle for a specified key should not be used after it has been closed, because it will no longer be valid. Key handles should not be left open any longer than necessary.

The RegCloseKey function does not necessarily write information to the registry before returning; it can take as much as several seconds for the cache to be flushed to the hard disk. If an application must explicitly write registry information to the hard disk, it can use the RegFlushKey function. RegFlushKey, however, uses many system resources and should be called only when necessary.


[RegOpenKey : http://msdn.microsoft.com/en-us/library/ms724895(VS.85).aspx]
[RegCloseKey : http://msdn.microsoft.com/en-us/library/ms724837(VS.85).aspx]
[RegCreateKey : http://msdn.microsoft.com/en-us/library/ms724842(VS.85).aspx]
[RegDeleteKey : http://msdn.microsoft.com/en-us/library/ms724845(VS.85).aspx]
Posted by 구차니
모종의 음모/Notepad22008. 12. 29. 23:54
메모장2 한글화를 위해서 context-menu 역시 한글로 하자는 의견이 나와서 수정을 하게 되었다.
물론.. 이번에는 검색도 없이 조언을 받아 약간의 시행오차를 거쳐 수정하게 되었다.

frhed를 이용한 테스트

step 1. 레지스트리는 HKEY_CLASSES_ROOT\*\shell 에 추가되는데 "Open in frhed" 라는 key가 보인다.


step 2. 하위 항목인 "command" 키에는 실행될 프로그램의 경로 및 인자를 넘겨 주기 위한 %1이 존재한다.


step 3. "Open in frhed" 키에 존재하는 (기본값) 의 내용을 수정해 준다.


step 4. context-menu에서 출력되는 모습을 구경한다. 기본값을 설정해준 대로 변경되었다.
   


이것을 이용하면, 출력 포맷은 바뀌어도 key는 변하지 않으므로 수정이 용이하다고 한다. (BLUE'nLIVE 님의 조언)


레지스트리 편집기를 이용하는 것 말고 프로그램으로 이것을 적용하려면 아래와 같이 하면된다.
            HKEY key1;
            LONG res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key1);
            if (res == ERROR_SUCCESS)
            {
                WCHAR cmd[] = L"메모장2로 열기(&E)";
                RegSetValue(key1, NULL, REG_SZ, cmd, wcslen(cmd)); // wcslen - strlen for unicode
            }

            res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2\\command",&key1);
            if (res == ERROR_SUCCESS)
            {
                WCHAR cmd[MAX_PATH + 4];
                WCHAR path[MAX_PATH];
                int len;
                GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);
                len = wsprintf(cmd, L"%s %%1", path);
                RegSetValue(key1, NULL, REG_SZ, cmd, len);
            }

[wcslen  : http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx]
Posted by 구차니
프로그램 사용2008. 12. 29. 16:28
UPX는 실행프로그램을 압축해 주는 유틸리티 입니다.
예를 들어 컴파일한 프로그램의 용량이 500KB 인데 MTD 등에 저장을 해야 해서 용량을 줄이고 싶다면
UPX를 통해 압축을 하면, 프로그램의 용량이 절반 정도로 줄어 듭니다.

C:\cvsdown\upx303w>upx.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2008
UPX 3.03w       Markus Oberhumer, Laszlo Molnar & John Reiser   Apr 27th 2008

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give more help                    -L    display software license
Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  -k     keep backup files
file..   executables to (de)compress

Type 'upx --help' for more detailed help.

UPX comes with ABSOLUTELY NO WARRANTY; for details visit http://upx.sf.net

notepad2의 용량이 커서 이것으로 압축을 해보았습니다.
 명령어 : upx.exe -9 -o notepad2_packed.exe notepad2.exe

그랬더니 프로그램의 크기가 절반정도로 줄어 드는군요!
 2008-12-24  오전 12:47           580,096 Notepad2.exe
 2008-12-24  오전 12:47           221,696 Notepad2_packed.exe

알려주신 okto님께 감사의 말씀을 +_+

[링크: http://upx.sourceforge.net/]
Posted by 구차니