Programming/Windows&C#

[Windows/WinAPI] CreateProcess, GetStartupInfo, GetStdHandle, WaitForSingleObject, ResumeThread(실습6)

JMob 2013. 10. 24. 01:13
728x90
반응형

이것저것 하다보니 늦게 정리했다.... 결국 올려준 실습도 아직 못 했고.... 일단 수업때 했던 실습예제부터 정리해본다...


구구단을 출력 하는 예제이다.

CreateProcess를 이용하여 출력한다.


먼저 구구단을 출력할 프로세스를 만든다.


딱히 별 다른 설명이 필요없다. 2번째 인자로 몇단인지 String으로 받고 13번째 줄이서 이를 정수 값으로 바꾸어 주었다. 그리고 간단하게 GetCurrentProcess를 이용하여 해당 프로세스의 ID값을 읽고 해당 프로세스에서 구구단을 출력한다.


다음은 프로세를 호출하는 프로세스를 만든다.



전체 코드이다... (몇줄 안된다...)



먼저 선언부분이다.


5번 라인에서 보면 앞에서 만든 프로세스 이름이다. 

그리고 17번과 19번 라인에서 정보를 받을것이라 명시하고 엑세스 표준 핸들을 설정해준다.



다음은 어떻게 보면 가장 중요한 CreateProcess를 사용한다. 

먼저 보면 _stprintf(commandLine,---) 이 보이는데 이는 커멘드에 말 그대로 라인으로 적어 준다는 뜻이다. 이를 통해서 실행할 프로세스와 구구단이 몇단인지 정보를 보내 주는것이다.



이제 여기서 실행된 프로세스를 실행한다고 보면된다.  보면 WaitForSinggleObject라는 것을 사용하는데 해당 프로세스를 실행할때 겹쳐 사용 되는것을 방지해준다. 차이를 알고 싶다면 주석처리 한 뒤 실행을 해보면 된다.

그럼 아마 구구단이 섞여서 출력이 될것이다.


이상으로 끝.... 하.... 함수들도 다 언능 정릴를 해야하는데 어느세월에 할지.... 너무 많다....



test3.c


test.c



728x90
반응형