1.  Virtual C++ 2005     

- 디버그 모드

// 디버깅하기 위한 컴파일 모드. 실행파일 중간에 디버그 정보를 삽입하여 디버깅 정보를 볼 수 있게 하며, 브레이크 포인트를 걸어서 실행 중간 과정을 확인 할 수 있음. 디버깅 정보가 들어가 실행파일의 크기는 크다.


- 릴리즈 모드

// 배포하기 위한 컴파일 모드. 컴파일 시에는 디버그 정보가 모두 빠지고, 코드 또한 최적화되므로 실행 파일의 크기는 작은 편이다. 



2. WIN 32 Data type


 자료형

 의미 

 BYTE 

 unsigned char형

 WORD 

 unsigned short형

 DWORD

 unsigned long 형

 LONG 

 long형과 같다.

 LPSTR

 char*형과 같다.(포인터)

 BOOL

 정수형이며 TRUE 혹은 FALSE 값을 갖는다. 



3. 인수와 매개변수 

- 매개변수

// 함수 내부에서 사용되는 변수. 즉, 불리워진 함수 내부에서 사용하는 변수.


- 인수

// 함수 밖에서 함수를 호출할 때 사용되는 변수. 즉, 함수를 부르는 쪽에서 사용하는 변수 


int multiple (int a, int b)

{

int nret;

nret=a*b;

return nret;

}


void main()

{

int k,m,n;

k=multiple(m,n);

}


// a,b는 매개변수, m,n은 인수. 



4. Vitual C++ 2005 시작 // win xp에서 실행. 

Win 32 -> Win 32 프로젝트 


Windows 응용프로그램, 빈 프로젝트 체크 후 마침.


소스파일 추가 -> 새 항목 -> 코드 -> c++파일(.cpp) 



5. 함수의 기본 구조 // 반드시 있어야 할 함수!! 


(1) WinMain() 함수 // 프로그램의 윈도우 자체를 생성만 함.


WinMain()
{
윈도우_클래스_만들기
윈도우_객체_생성하기
윈도우_객체_화면에_띄우기
메시지_루프_돌리기

}

- WinMain() 함수의 원형

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdParam,
int nCmdShow)

// hInstance : 현재 실행되고 있는 프로그램의 인스턴스 핸들
hPrevlnstance : 바로 앞에 실행된 프로그램의 인스턴스 핸들, 통상 NULL 값을 준다.
lpCmdLine : 명령행 인자. main 함수의 argv에 해당.
nCmdShow : 윈도우를 보여주는 형태의 플래그.


* 인스턴스 핸들
// 메모리에 생성된 클래스의 실체.
예를 들면, 내 방에 있는 컴퓨터, 책상, 스탠드 등을 클래스라 할 수 있으며, 이 물건들을 활용한다면 메모리에 생선한다고 말할 수 있다.
내 방에 컴퓨터는 존재한다( 클래스가 존재한다 ) 내가 컴퓨터의 전원을 켠다 (메모리에 클래스를 생성한다) 존재의 가치가 있으려면 메모리가 생성되어야한다.
각 프로그램마다 고유하다.

* 핸들
// 레이블과 같은 것으로, 대상을 식별하는데 주로 사용.
- 접두어 h로 시작하며, 정수형 32bit이다.
- 핸들은 운영체제가 발급하며 사용자는 핸들을 쓰기만 하면 된다.
- 같은 종류의 핸들끼리는 절대 중복된 값을 가지지 않는다.


< 윈도우 생성을 위해서 > // WinMain()함수
1. 윈도우 클래스 생성 // 구조체 이용
2. 윈도우 객체 생성 // 클래스 이용
3. 윈도우 화면에 출력
4. 입력장치로부터 입력신호를 받음(메시지 루프)
// 메시지 루프로부터 전달 받은 윈도우 메시지를 처리 // WndProc()함수

(2) WndProc() 함수 // 실제 일어나는 윈도우 메시지를 처리 ( 윈도우 프로시져 = 윈프록 )

WndProc()
{
전달된_메시지_처리하기


}


+ Recent posts