본문 바로가기

Program Languege/WinAPI

프로세스

프로세스

 

프로세스(Process)

 

 프로세스란 실행중인 프로그램을 말한다. 프로세스를 프로그램이라고 생각하면 안된다. 프로그램이 실행되면서 인스턴스화 된 것. 프로그램의 인스턴스가 프로세스이다. 운영체제는 실행된 프로그램을 프로세스 단위로 관리한다.

 

 프로세스는 실제로 작업을 처리하지는 않는다 내부에 있는 쓰레드에서 작업을 담당한다. 프로세스는 최소한 한 개 이상의 쓰레드를 가진다.

 

프로세스를 생성하는 함수는 세가지가 있다.

 

 UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow);

 

 DWORD LoadModule(LPCSTR lpModuleName, LPVOID lpParameterBlock);

 

 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);

 

 32비트 이상에서는 일반적으로 CreateProcess 함수를 사용하지만 아주 간단한 실행이라면 WinExec를 사용해도 무방하다.

 LoadModule함수의 경우도 상관은 없지만 구조체를 작성해서 인자로 넘겨야하기때문에 까다롭고 손이 많이 간다. 그렇기때문에 LoadModule보다는 CreateProcess함수를 추천한다.

 

출처 - 윈도우즈 API 정복

'Program Languege > WinAPI' 카테고리의 다른 글

공통 대화상자 - 1  (0) 2014.05.05
스레드  (0) 2014.04.29
TransparentBlt, AlphaBlend, GdiTranslaparentBlt, GdiAlphaBlend  (0) 2014.04.15
QueryPerformance  (0) 2014.04.10
PeekMessage  (0) 2014.04.10