Windows

윈도우 시스템 프로그래밍

Ohjeonghak 2013. 7. 17. 15:16
반응형

일단 프로젝트 생성 방법이다.

 

다음과 같은 두 소스의 내용으로 프로젝트를 생성하고 컴파일 해준다.

 

AdderProcess.cpp

⁄*
	AdderProcess.cpp
	프로그램 설명 : main 함수의 전달인자를 덧셈하는 프로그램.
*⁄

#include <stdio.h>
#include <tchar.h>
#include <windows.h>


int _tmain(int argc, TCHAR* argv[])
{
	DWORD val1, val2;
	val1=_ttoi(argv[1]);
	val2=_ttoi(argv[2]);

	_tprintf(_T("%d + %d = %d \n"), val1, val2, val1+val2);

	_gettchar(); ⁄⁄프로그램의 실행을 잠시 멈추기 위해. 
	return 0;
}

 

CreateProcess.cpp

⁄*
	CreateProcess.cpp
	프로그램 설명 : 덧셈 프로세스를 생성
*⁄

#include <stdio.h>
#include <tchar.h>
#include <windows.h>


#define DIR_LEN MAX_PATH+1

int _tmain(int argc, TCHAR* argv[])
{
	STARTUPINFO si={0,};
	PROCESS_INFORMATION pi;
	
	si.cb=sizeof(si);
	si.dwFlags=STARTF_USEPOSITION|STARTF_USESIZE;
	si.dwX=100;
	si.dwY=200;
	si.dwXSize=300;
	si.dwYSize=200;
	si.lpTitle=_T("I am a boy!");

	TCHAR command[]=_T("AdderProcess.exe 10 20");
	TCHAR cDir[DIR_LEN];
	BOOL state;

	GetCurrentDirectory(DIR_LEN, cDir);	⁄⁄현재 디렉토리 확인.
	_fputts(cDir, stdout);
	_fputts(_T("\n"), stdout);

	SetCurrentDirectory(_T("C:\\WinSystem"));
	
	GetCurrentDirectory(DIR_LEN, cDir);	⁄⁄현재 디렉토리 확인.
	_fputts(cDir, stdout);
	_fputts(_T("\n"), stdout);


	state=CreateProcess(NULL,     ⁄⁄ 프로세스 생성.
					    command,
						NULL,
						NULL, 
						TRUE, 
						CREATE_NEW_CONSOLE, 
						NULL, 
						NULL, 
						&si, 
						&pi
	);  ⁄⁄CreateProcess
	
	if(state!=0)
		_fputts(_T("Create OK! \n"), stdout);
	else
		_fputts(_T("Create Error! \n"), stdout);

	return 0;
}

C 드라이브에 WinSystem 폴더를 만들어 컴파일 했던 디버그 폴더에 있는 exe파일을 복사해서 붙여넣는다.

 

 

그리고 cmd 창에 다음과 같이 하면 작동 테스트를 할 수 있다.

 

 

 

반응형