블로그 이미지
그만봐!! 붉은 기타

카테고리

만땅보기 (6)
넋두리 (0)
PC 팁 (3)
MFC 팁 (2)
하진이 이야기 (0)
이것저것 (0)
Total
Today
Yesterday
MFC를 사용하다 보면 CString을 많이 사용하게 된다.. 역시 배운지 얼마 안된지라 편하면 무조건 우

선적으로 선택하게 된다는.. ㅋㅋㅋ

CString은 문자열을 다룰때 매우 편리한 기능이 많다..

그중 문자열에서 원하는 문자를 찾아낼 수 있는 멤버함수를 알아보자~!!!

먼저 CString을 초기화를 하고 Find라는 멤버함수를 쳐보자..

CString str = "abcd";

int n = str.Find("c");

대충 위의 예제를 보면 어떻게 돌아가는 것인지 짐작이 될것이다..

위와 같이 하면 n에는 2라는 값이 들어갈 것이다.. 바로 "c"의 위치인 2를 반환하는 것이다.

찬찬히 부분동작으로 알아보자!!!

1. CString 초기화~!!

2. Find함수는
int형으로 return하니 return받을 int형 변수를 준비하자!!

3. Find함수를 사용하여 찾을 문자를 인수로 던져주자!!

4. int형 변수를 보며 정확히 가져온것인지 보고 잘했으면 CString을 칭찬해주자!!!


여기서 만약에 "abcdabcd"라는 문자열에서 두번째 a를 찾고 싶다면 다음과 같이 해보자...

CString str = "abcdabcd";

int n = str.Find("a", str.Find("a")+1);

보다시피 Find의 두번째 인수는 문자열에서 문자와 비교를 시작할 위치를 지정해주는 것이다!!

위 동작을 자세히 뜯어보면은...

먼저 CString변수인 str에서 Find함수의 첫번째 인수인
"a"를 찾으려 한다..

이때 Find함수의 두번째 인수로
str.Find("a")+1 들어간다. 여기서 먼저 str에서 첫번째 "a"의 위치

를 찾아 반환하며, 뒤에 붙은
+1로 인해 첫번째 a의 위치 바로 뒤를 지정하게 된다..

이로 인해 우리는 간단히
두번째 a
를 찾아볼 수 있는 것이다..!!!!!

Find함수를 쓰면서 다시 한번 CString의 편리성에 이 초보자는 감격한다.. ㅋㅋ

머.. 돌아다니다보니 형변환시에나 릴리즈 버전으로 작업시 문제점이 있다지만.. 그래도 초보한테는

쓰기 편하면 장땡이라는 안일한 생각을 해본다.. ㅋㅋ
Posted by 붉은 기타
, |

오늘 작업 중 기본기가 안되어 헤매었던 일이 있다.. 포인터에 대한 지대로 개념이 없는지라.. ㅡㅡ;;

사고의 발단은 코딩 중 char 포인터를 new/delete를 이용하여 사용할 일이 있는데 delete에서 자꾸

에러가 나는 것이었다... 소스는 다음과 같았다..

char *sz =  new char[5];
....
delete []sz;

이것이 자꾸 에러를 내뿜는 것이었따.. 우리들의 말많은 이웃들에게 물어보아....

문법상 문제가 없음을 확인하였고, 지푸라기라도 잡는 심경에 여기저기 날림 코딩들을

보고 따라해보아도 마찬가지였다... ㅡㅡ;;

하지만 정작 문제는 개념없는 나에게 있었던 것이었으니...

new char[5]를 해놓고 갖다 쓰는 부분에서 널값을 안남기구 다짜고짜 문자열로 다 채워넣었던

것이었으니... 오호통재라.... ㅡㅡ;;

char포인터는 항상 마지막을 널값으로 해줘야 delete할때 문제가 안생기는 것이었다.. ㅡㅡ

찾아보니 남들은 당연시 하는 것을 몰라 헤매었으니.. ㅜㅜ

역시 기본기가 안되는 상태에서 무작정 안된다고 남의 소스 보고 쫓아하면 안된다는 교훈을..

다시 한번 뼈가 쩌리도록 깨달은 시간들이었따.. ㅡㅡ;;;

Posted by 붉은 기타
, |

WinXP 의 기본 Shell은 Explorer.exe 이다. 이를 Cmd.exe Shell 로바꾸려면

regedit.exe 실행하여

HKEY_LOCAL_MACHINE

\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

의 Shell 항목의 값을 Cmd.exe로 수정한다.

Posted by 붉은 기타
, |
사용자 삽입 이미지

윈도우의 지겨운 부팅 화면을 바꿔보자!!

먼저 부팅화면을 바꾸기 위해서 앞으로 부팅화면으로 사용할 이미지를 만들어야 한다.

이 때, 중요한 것은 반드시 640*480 사이즈에 16컬러로 맞춰야 한다는 것!! 그리고

파일명은 반드시 boot.bmp가 되어야 한다!!

그리고 Boot.ini파일을 찾아 수정을 해야 하는데, 이놈의 Boot.ini파일은 C:\에 숨어 있다..

숨김 파일을 보는 방법은 탐색기의 메뉴에서 도구 - 폴더 옵션에서 보기 섹션에 숨김파일

및 폴더 표시
를 체크함으로 설정이 가능하다..

Boot.ini를 메모장으로 열어 제껴보면 다음과 같이 알 수 없는 문자들이 눈을 현혹시킨다.

BOOT.INI------------------------------------------------------------
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /Execute /fastdetect
-----------------------------------------------------------------------------------------------------------------------

하지만 현혹되지 말자!! 우리는 맨 밑에 줄만 보면 된다!!

맨 밑에 줄 맨 끝에 /noguiboot /bootlogo만 붙여주면 되는 것이다.

-----------------------------------------------------------------------------------------------------------------------
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /Execute /fastdetect /noguiboot /bootlogo
-----------------------------------------------------------------------------------------------------------------------

그리고 마지막으로 C:\Windows 폴더에 준비한 로고 파일을 복사하면 준비 끝!!!

바로 재부팅으로 확인하라!!!
Posted by 붉은 기타
, |

시작-실행-regedit

아래 경로로 찾아간 다음에

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon

이 경로에서 새로운 문자열 값을 생성을 한다.

문자열 값:

AutoAdminLogon ----> 1

DefaultUserName ----> UserName(로그인 계정)

DefaultPassword ----> Password(로그인 계정의 패스워드)

재부팅

============================================================

두번째 방법
 
실행창에 control userpasswords2 를 실행해서

asp.net.machine을 삭제하고 재부팅 한다.

Posted by 붉은 기타
, |

몇달간에 쌓인 먼지는 간단히 털어내고..

드디어 오픈!!!

Posted by 붉은 기타
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함