나의 이야기/Note2009. 8. 1. 18:07
내가 인터넷에 적은 글이다.

현실을 생각해보자. 뭘 해야 하나?
Posted by 머리
Study - Programming/C/C++2009. 2. 4. 08:38
BOOL CreateProcess(
  LPCTSTR lpApplicationName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

MSDN 참고 주소 : http://msdn.microsoft.com/en-us/library/ms682425.aspx (닷넷 기준이라 조금 모양이 다릅니다.)

자식 프로세스를 생성한다. 이때 이 함수를 호출한 프로세스는 부모 프로세스(Parent Process), 함수 호출로 생성된 프로세스를 자식 프로세스(Child Process)라고 한다.


  LPCTSTR lpApplicationName : 생성할 프로세스의 실행파일 이름.
  LPTSTR lpCommandLine : 생성할 프로세스의 파라미터 문자열

  LPSECURITY_ATTRIBUTES lpProcessAttributes : 프로세스의 보안 속성
  LPSECURITY_ATTRIBUTES lpThreadAttributes : 스레드를 전달할 경우 보안 속성
  BOOL bInheritHandles : 자식프로세스의 부모 프로세스의 핸들 소유 여부
  DWORD dwCreationFlags : 생성하는 프로세스의 프로세스 특성
  LPVOID lpEnvironment : 프로세스가 실행헤 필요한 문자열 저장. Enviroment Block 지정
  LPCTSTR lpCurrentDirectory : 자식 프로세스의 현재 디렉터리 설정
  LPSTARTUPINFO lpStartupInfo : 자식 프로세스의 속성이 담긴 구조체의 주소값
  LPPROCESS_INFORMATION lpProcessInformation : 자식 프로세스의 정보를 저장할 구조체 주소값


그리고 다음은 LPSTARTUPINFO의 구조이다.

typedef struct _STARTUPINFO {
  DWORD  cb;
  LPTSTR lpReserved;
  LPTSTR lpDesktop;
  LPTSTR lpTitle;
  DWORD  dwX;
  DWORD  dwY;
  DWORD  dwXSize;
  DWORD  dwYSize;
  DWORD  dwXCountChars;
  DWORD  dwYCountChars;
  DWORD  dwFillAttribute;
  DWORD  dwFlags;
  WORD   wShowWindow;
  WORD   cbReserved2;
  LPBYTE lpReserved2;
  HANDLE hStdInput;
  HANDLE hStdOutput;
  HANDLE hStdError;
} STARTUPINFO,
*LPSTARTUPINFO;

특별히 중요한 요소가 있다기보다는 이런게 있다라는 전체적인 것을 아는 것이 좋다. 자세한 것은 MSDN(http://msdn.microsoft.com/en-us/library/ms686331(VS.85).aspx) 을 참조하자.

다음은 LPPROCESS_INFORMATION 의 구조이다.
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId; } PROCESS_INFORMATION,
*LPPROCESS_INFORMATION;
자세한 사항은 좀 더 공부를 해 보아야겠다.

그리고 주의해야 할 점이 유니코드 기반에서 함수 실행 시 lpCommandLine인자에 바로 _T("abc.exe")형식으로 문자열을 넣으면 런타임에러가 난다. 함수 내부적으로 문자열에 변화를 가하기 때문이라고 한다. 그러므로 넘길때는 반드시 따로 문자열 변수를 만들어 넘기자.



Posted by 머리
나의 이야기/Note2008. 8. 9. 16:14
아.. 부모님께 소포를 보내달라고 했다.

거의 다써가는 샴푸랑 바디샴푸, 폼 클렌징이랑 같이 Thinking In Java도 같이 보내달라고 해 버렸다.
이래도 되려나... 왠지 쵸큼 눈치 보이는데? 뭐 아무렴 어때? 얼른 왔으면 좋겠다.

그것과 같이 또 사고 싶은 책이 늘어나고 있다. 군대까지 와서 이런.

1. The Art of Computer Programming
가장 사고 싶은 책이다. 그냥 TIJ 없이 이 책 한권사서 계속 읽어 보고 싶다. 수학적인 부분도 있어서 한번쯤은 읽어 두는게 좋을 듯 싶다.

2. 소프트웨어 산책
어쩌다 추천받아서 알게 되었는데, 재미있을 것 같네.

두개 다 구포도서관에서 본 책 같다. 휴가 가서 한번 읽어 보고 둘중에 하나 사서 들고 와야지. 아 얼른 휴가 가고 싶다!
Posted by 머리
나의 이야기/Note2007. 11. 12. 23:27
어쩌다가 학과 홈페이지에 SSM 공개 세미나 공지를 보게 되어서 평소에 SSM에 관심이 있어서 참석하고 왔다. 마침 수업도 일찍 끝나는 날이라 수업 마치고 바로 세미나 장소인 부경대로 향했다.

사용자 삽입 이미지

세미나장에서 시작하기 전에 기다리면서 나와 있던 화면


생각보다 참석한 사람은 그리 많지 않았다. 한 150명 가까이 온 것 같았는데 나중에 사회자님께서 말씀하시길 멤버십 회원 뺴고 나면 채 100명이 안된다고 하시더라. 흠.. 그 소리 듣고 나중에 있을 경품 추첨을 나름 기대했지만..

강연은 전문 연구원이 하는게 아니라 실제 SSM 회원분이 직접 하셨다. 경성대에 재학중인 분이랑 우리과 04학번 장지훈 선배님께서 강연을 하셨다.

부산 멤버십 16기 회원 박지훈 님께서는 Arm In Embeded System이라는 주제로 강연을 하셨는데, 유비쿼터스 세상이 다가오고 있다는 것을 시작으로 임베디드에 대한 개론 및 Arm 소개, 그리고 그것을 통한 개발의 예시를 보여 주셨다. 임베디드라는 분야는 많이 들어 봤지만 그것에 대한 실제 작업 방법은 제대로 본 적이 없는데, 상당히 자세하게 보여 주셔서 많은 간접 경험이 되었다.

두번째 강연은 역시 부산 멤버십 16기 회원 장지훈 님께서 Developint and Applying the Windows Device Driver이라는 주제로 강연하셨다. 원더걸스의 텔미를 보여주는 등 신선한(?)도입과 함께 시작되었는데, 주제가 주제인 만큼 Windows 이전 DOS 시절의 Driver부터 시작해서 현재 Windows Vista의 Driver기술의 변천 과정을 소개하고 실제로 Graphic Device Driver를 제작하신 예를 통하여 실제 데스크톱 화면을 3D로 표현하는 것을 보여 주셨고, 마지막으로 이 기술을 이용해서 FireFox 소스를 이용하여 3D Web Brower Star Sailor의 소개 및 시현을 해 주셨다. 이 기술은 제대로 된 이름은 모르겠지만 우분투에서 보여 주는 바탕화면을 끌면 화면이 돌아가는 것과 상당히 비슷해 보였다.

두 분야 모두 학부 1학년생이 보기에는 다소 어려운 내용이였지만 강사 분들께서 정말 열심히 그리고 자세하고 쉽게 세미나를 진행해 주셔서 비교젹 쉽게 이해 할 수 있었다. 오랫동안 준비한 노력이 보였다. 그리고 3시간이 넘는 긴 강연이였는데 하나도 지루하지 않았다. 오히려 한장 한장 넘어갈때마다 흥민진진하였다.

그리고 중간 중간 휴식 시간에는 세미나장 밖에 프로젝트를 전시해 논 것들을 볼 수 있었는데, 앞서 말한
Star Sailor도 보였고, 웹과 데스크톱 환경의 위젯 연동, 비스타의 보안기능을 XP에서 만들어 본 것 등 다양한 주제의 프로젝트들이 소개 되었다. 매 휴식 시간마다 보고 다시 들어갈 때마다 정말 가슴이 두근두근거렸다.

마지막에는 경품 추첨을 했는데 내가 175번이였는데 170번이랑 178번은 불렀는데 175번은 부르지 않았더라.. 아쉽군..

모두 끝나고 이번에 강연 하셨던 장지훈 선배님이 우리과 선배분이라 잠깐 인사 하고 아쉬운 발걸음을 돌렸다.

처음 가본 학술 관련 세미나라 엄청나게 어려울 줄 알았는데 생각보다 이해하기 쉬웠다. 사진을 많이 못 찍은게 매우 아쉽다. 좋은 경험이 되었고 다음에 이런 기회가 있으면 꼭 가봐야 겠다.
사용자 삽입 이미지

모두 끝나고 사진을 못찍은게 아쉬워서 철수하는 모습이나마 찍어 본 것

사용자 삽입 이미지

철수 장면 2

사용자 삽입 이미지

어느덧 마치고 나니 9시가 넘어 있었다. 집에 돌아가면서 부경대 건물에 붙어있던 광고 포스터를 찍었다.

Posted by 머리
Study- MSC/Computer2007. 10. 21. 11:20

  하아.. 이 시험기간에 대박으로 사고쳐 버렸다..

  무슨 생각이였는지 우분투를 깔아보려 하다가 하드를 완전히 날려먹었다.

  우분투까지는 제대로 깔렸다. 대충 세팅하고 윈도우로 재부팅하려 했는데 이거 뭐... 윈도우가 맛이 가 버렸네.. 여기까지는 괜찮았다. 그냥 윈도우 덮어 깔면 되니까..

  문제는 여기서부터였다. 윈도우를 덮어 깔고 나니까 노트북이 이상하게 OS를 못알아채네? 우분투, 윈도우 둘다.. 허..무슨일이지 이건.. 아무리 파티션 설정하고 별짓을 해봐도 제대로 되지가 않는다.. 우분투는 알아서 잘 깔리는데 윈도우를 깔려니까 왜 파티션은 익식해놓고 거기에 깔리지는 않는거지? 우분투랑 같이 깔으려고 하면 윈도우가 항상 말썽이더라.

  결국은 6시간동안 별 짓을 다하다가 새벽 4시에 윈도우만 달랑 깔고 끝냈다.

  결과는 파티션 만지다가 D드라이버까지 다 날려먹고.. 진짜 슬프네.. 1년동안 공부한 소스코드 2GB를 날려먹었다. 다른 프로그램은 어떻게 구하면 되지만 그건 진짜.. 아..

  지금은 파티션을 20 20 20 20 1 19GB 이렇게 나눠서 첫 20GB는 OS용 20GB 3개는 백업용, 1GB와 19GB는 리눅스용 스왑과 루트.. 아직 리눅스는 또 고장날까봐 겁나서 깔지도 않았지만..

사용자 삽입 이미지

파티션 나눠 놓고 포맷 중

  사진은 파티션 나눠놓고 아직 포맷을 안해놔서 포맷 중인 사진. 저런걸 3개 해야 한다. 언제 다해?

  시험기간에 대박으로 사고 하나 쳤구나..
Posted by 머리