기금넷 공식사이트 - 복권 조회 - vc 6.0 작동 방법

vc 6.0 작동 방법

VC 6.0 컴퓨터 운영 안내서

귀주대학교 컴퓨터 과학 기술부

장 Zhiming

2006년 9월

목차

1. 컴퓨터에서 Visual C 콘솔 애플리케이션을 구현하는 단계

2. MFC 다이얼로그 애플리케이션 구현 예

3. MFC 단일 문서 애플리케이션 구현 예

4. 32비트 디버거를 사용하여 클래스 및 개체의 메모리 이미지 이해

1. Visual C 콘솔 애플리케이션(Win32 콘솔 애플리케이션 프로젝트)

컴퓨터 구현 단계

1. 단일 파일 프로그램 구현

이 교과서의 프로그램은 모두 Visual C 환경에서 Win32 콘솔 응용 프로그램 프로젝트로 구현되었으며 모두 단일 파일 프로그램입니다. 즉, 하나의 소스 프로그램만 포함합니다. (.cpp) 파일입니다.

Visual C IDE에서 단일 파일 프로그램을 구현하는 주요 단계는 다음과 같습니다. (1) 새 프로젝트 만들기 (2) 새 파일 만들기 (3) 소스 코드 입력 (4) 컴파일, 연결 , 실행 가능한 프로그램 파일을 생성합니다. 위의 단계는 Visual C 마법사의 안내에 따라 대화 상자를 통한 대화형 입력을 통해 완료할 수 있습니다.

1. 새 프로젝트 만들기:

C 프로그램을 구현할 때마다 프로젝트를 만들어야 합니다. 소위 프로젝트는 파일 생성 과정의 관리 단위이다. 프로젝트 이름은 최종적으로 구현된 실행 파일의 이름이다. 프로젝트는 이 실행 프로그램 파일 생성과 관련된 모든 소스 파일과 중간 파일의 집합으로 저장된다. 폴더에 프로젝트 이름을 딴 파일.

그림 1 Microsoft Visual C 6.0 시스템 초기 인터페이스

Filegt; New 메뉴 명령을 실행하여 새로 만들기 대화 상자를 엽니다.

그림 2 새로 만들기 대화 상자 열기 box

p>

새로 만들기 대화 상자의 프로젝트 탭에서 Win32 콘솔 응용 프로그램 옵션을 선택한 다음 프로젝트 저장 위치의 프로젝트 이름을 입력하고 확인합니다.

그림 3 프로젝트 위치와 이름 입력

Win32 ConsoleApplication-1/1 대화 상자에서 빈 프로젝트를 선택하고 완료 후 돌아옵니다. 새 프로젝트 정보 보고서 대화 상자가 나타납니다.

그림 4 Win32 ConsoleApplication-1/1 단계 대화 상자

그림 5 새 프로젝트 정보 보고서

2. 새 파일을 만듭니다.

Filegt; New 메뉴 명령을 다시 실행하여 새로 만들기 대화 상자를 열고 파일 탭에서 C 소스 파일 옵션을 선택한 다음 소스 프로그램 파일 이름을 입력합니다. 완료되면 소스 프로그램(.cpp) 파일 편집 창이 열립니다.

그림 6 새로 만들기 대화 상자에 소스 프로그램 파일 이름 입력

3. 소스 코드 입력:

이때 소스를 입력할 수 있습니다. 프로그램(.cpp) 파일 편집창에 소스 프로그램 코드를 입력합니다.

그림 7 소스 프로그램(.cpp) 파일 편집 창

4. 실행 가능한 프로그램 파일 생성 및 실행:

11 소스 프로그램 파일에서 실행 가능한 파일 생성 VC 6.0 프로그래밍 환경에서는 다음 작업을 수행할 수 있습니다.

(1) 빌드 메뉴를 열고 먼저 컴파일 명령을 실행한 다음 빌드를 실행합니다. 주문하다.

(2) Build 메뉴를 열고 Rebuild All 명령을 실행합니다.

(3) 빌드 메뉴를 열고 실행 실행 명령을 직접 실행하여 컴파일, 연결, 프로그램 실행 시작 작업을 한 번에 완료합니다.

(4) "!"(BuildExecute) 명령 버튼을 직접 클릭하면 프로그램 컴파일, 연결, 실행 시작 작업이 한 번에 완료됩니다.

그림 8 빌드 메뉴

그림 9 프로그램 실행 결과

프로젝트 폴더를 열어 프로젝트의 모든 작업 파일을 찾습니다.

생성된 실행 파일(.exe)을 찾으려면 프로젝트 폴더의 디버그 하위 폴더를 엽니다.

2. 다중 파일 프로그램 구현

대규모 C 프로그램에는 때때로 여러 소스 프로그램 파일이 포함되어야 합니다. 일반적인 상황은 클래스 정의를 헤더(.h) 파일에 배치하고 클래스 구현 또는 클래스에 대한 액세스를 소스(.cpp) 파일에 배치하는 것입니다.

다중 파일 프로그램을 구현하려면 단일 파일 프로그램을 구현하는 것과 동일한 단계가 필요합니다. 차이점은 컴파일하기 전에 새 파일 대화 상자를 사용하여 필요한 모든 파일을 추가해야 한다는 것입니다. 프로젝트를 하나씩.

1. 새 프로젝트 만들기:

2. 새 파일 만들기:

(1) 헤더 파일 추가 및 편집:

새로 만들기 대화 상자의 파일 탭에서 C/C 헤더 파일 옵션을 선택한 후 헤더 파일 이름을 입력합니다. 완료되면 시스템은 소스 프로그램(.h) 파일 편집 창을 엽니다.

(2) 소스 프로그램 파일 추가 및 편집

새로 만들기 대화 상자를 열고 파일 탭에서 C 소스 파일 옵션을 선택한 다음 소스 프로그램 파일 이름을 입력합니다. 완료되면 소스 프로그램(.cpp) 파일 편집 창이 열립니다.

참고: 헤더 파일은 file include 명령을 사용하여 소스 프로그램 파일에 포함되어야 합니다. 예를 들어, 소스 프로그램 파일 s719.cpp의 첫 번째 줄은 다음과 같습니다: #include "h719.h"

3. 실행 가능한 프로그램 파일을 생성하고 실행합니다:

단계는 단일 파일 프로그램의 생성 및 실행 단계와 동일합니다.

#

2. MFC 대화 상자 응용 프로그램 구현 예

이 가이드에서는 세 가지 MFC 대화 상자 응용 프로그램 구현 예를 제공합니다. 예 1은 평균 점수를 찾는 간단한 프로그램입니다. 예제 2는 4개의 연산 기능을 갖춘 간단한 계산기를 구현하는 것입니다. 예제 3은 복권 기계 프로그램(두 가지 복권 기계 프로그램 버전, 수동 복권 및 자동 복권)이 제공됩니다.

이 프로그램을 통해 다음과 같은 목적을 달성할 수 있습니다.

AppWizard 사용을 마스터하세요.

워크샵의 다양한 보기 사용법과 다양한 보기 간 전환 방법을 숙지하세요.

컨트롤 도구 상자의 컨트롤을 사용하여 대화 상자 인터페이스를 사용자 정의하는 방법을 알아보세요.

제어 변수 및 기타 클래스 멤버 변수를 설정하는 방법을 알아보세요.

메시지 매핑의 개념과 작동 방법을 알아보세요.

코드를 보고 편집하는 방법을 알아보세요.

대화 상자 애플리케이션을 컴파일, 실행 및 디버그하는 방법을 알아보세요.

예제 1. 세 과목의 평균 점수를 계산하는 MFC 대화 상자 애플리케이션을 구현합니다. 런타임 인터페이스는 다음과 같다고 가정합니다:

구현 단계:

1. Visual C 6.0 작업 개발 환경의 New 대화 상자에서 MFC AppWizard [exe] 프로젝트를 선택합니다. 프로젝트 이름을 입력하고 저장 위치를 ​​지정합니다.

2. MFC 마법사 Step1에서 Dialog(기본 대화) 프로그램 유형을 선택하고, MFC Wizard Step2에서 대화 제목 "Find Average Grade"를 입력합니다.

AppWizard 대화가 끝나면 다음과 같이 대화 상자 편집 창을 엽니다.

3. 인터페이스 사용자 정의: 컨트롤 추가 및 속성 설정

원본 삭제 " 확인" 버튼과 "TODO: 여기에 대화 상자 컨트롤 설정"이라는 내용이 포함된 정적 텍스트 컨트롤이 있습니다.

컨트롤 도구 상자에서 그룹 상자 컨트롤을 선택하고 적절한 크기로 조정한 다음 컨트롤 테두리를 마우스 오른쪽 버튼으로 클릭하고 팝업 드롭다운 메뉴에서 속성 대화 상자를 엽니다. 그룹 상자 컨트롤 제목을 "정적"에서 "평균 점수"로 변경합니다.

그룹 상자에 4개의 정적 텍스트 컨트롤을 추가하고 같은 방식으로 제목 속성을 "Grade 1", "Grade 2", "Grade 3" 및 "Average Score"로 수정합니다.

그룹 상자에 4개의 편집 상자 컨트롤을 추가하고 속성 대화 상자의 확장 스타일 탭을 열고 오른쪽 정렬 텍스트(오른쪽 정렬 텍스트) 모드로 설정합니다. 네 번째 편집 상자 컨트롤의 스타일 속성은 읽기 전용으로 설정됩니다.

그룹 상자에 버튼 Button1을 추가하고 속성 대화 상자를 열고 버튼의 제목 속성을 "평균 점수 계산"으로 변경합니다.

팝업 드롭다운 메뉴에서 속성 대화 상자를 열려면 "취소" 버튼 테두리를 마우스 오른쪽 버튼으로 클릭하세요. 버튼 제목을 "종료"로 변경합니다.

설계된 인터페이스는 그림과 같으며 컨트롤 속성 목록은 다음과 같습니다.

컨트롤

ID 번호

제목

속성

그룹 상자

IDC_STATIC

평균 점수 계산

정적 텍스트

IDC_STATIC

1등급

정적 텍스트

IDC_STATIC

2등급

정적 텍스트

IDC_STATIC

3학년

정적 텍스트

IDC_STATIC

평균 점수

편집 상자

IDC_EDIT1

텍스트 정렬: 오른쪽

편집 상자

IDC_EDIT2

텍스트 정렬: 오른쪽

p>

편집 상자

IDC_EDIT3

텍스트 정렬: 오른쪽

편집 상자

IDC_EDIT4

텍스트 정렬: 오른쪽, 읽기 전용

버튼

IDC_BUTTON1

평균 점수 계산

버튼

IDCANCEL

종료

4. 멤버 변수 추가

보기 > 클래스 마법사(클래스 생성 마법사) 메뉴를 클릭하여 클래스 마법사로 들어가서 멤버 변수 탭을 엽니다. 4 Edit Box 컨트롤 해당 변수:

다른 세 개의 Edit Box 컨트롤에 대한 변수를 설정하는 동일한 방법:

컨트롤 ID

변수 이름

변수 유형

값 범위

IDC_EDIT1

m_S1

int

0~100

IDC_EDIT2

m_S2

정수

0~100

IDC_EDIT3

m_S3

int

0~100

IDC_EDIT4

m_Sav

CString

5. 메시지 추가 매핑(2개의 메시지)

ClassWizard를 입력하고 메시지 맵 탭을 열고 개체 ID에서 CAverageDlg를 선택하고 메시지에서 WM_INIDIALOG를 클릭하면 생성된 메시지 맵 멤버 함수 OnInitDialog 프롬프트가 멤버 함수에 나타납니다.

개체 ID에서 IDC_BUTTON1을 선택하고 메시지에서 BN_CLIKED를 클릭한 후 팝업 대화 상자에서 확인 버튼을 클릭하면 두 번째로 생성된 메시지 매핑 멤버 함수 OnButton1이 멤버 함수에 나타납니다.

6. 코드 추가

ClassWizard에서 OnInitDialog 함수를 두 번 클릭하고 코드 편집기에서 OnInitDialog() 함수 코드를 열고 // TODO: 여기에 추가 초기화를 추가합니다. 그리고 아래에 굵은 글씨로 표시된 세 줄의 코드를 추가하세요:

BOOL CDlgDlg::OnInitDialog()

{

CDialog::OnInitDialog();

…;

// TODO: 여기에 추가 초기화를 추가합니다.

m_Sav="0.00"

m_S1=m_S2=m_S3; p >

UpdateData(FALSE);

return TRUE; // 포커스를 컨트롤로 설정하지 않은 경우 TRUE를 반환합니다.

}

ClassWizard OnButton1() 함수에서 코드 편집기에서 OnButton1() 함수 코드를 열고 // TODO: Add extra 초기화 여기에 굵게 표시된 다음 4줄의 코드를 추가합니다.

void CDlgDlg : :OnButton1()

{

// TODO: 여기에 추가 초기화를 추가하세요.

UpdateData();

double ave=( double )(m_S1 m_S2 m_S3)/3.0;

m_Sav.Format("6.2f",ave)

업데이트데이터(FALSE); p>

7. 프로그램을 컴파일하고 실행합니다.

참고:

UpdateData()의 기능은 제어 변수 업데이트를 허용하는 것입니다.

UpdateData(FALSE )는 제어 변수 값 업데이트를 금지합니다.

예 2. 4개의 산술 함수가 포함된 간단한 계산기를 구현하는 MFC 대화 상자 애플리케이션을 디자인합니다.

1. 새 프로젝트 만들기:

2. 인터페이스 사용자 지정:

(1) MFC AppWizard에서 자동으로 생성된 대화 상자 프로젝트 템플릿을 수정합니다. 템플릿에 자동으로 생성된 세 가지 컨트롤을 삭제합니다.

(2) "간단한 계산기", "데이터를 입력하십시오:", "결과" 등 3개의 정적 텍스트 상자와 해당 3개의 편집 상자를 추가합니다.

(3) 그룹 상자를 추가하고 제목을 "연산자를 선택하십시오:"로 변경한 다음 라디오 버튼 4개를 넣고 제목을 " ", "-" 및 "*"로 변경합니다. 각각 "/"입니다.

(4) 계속해서 마우스를 사용하여 도구 상자에서 대화 상자에 3개의 버튼 컨트롤을 추가하고 버튼 제목을 "계산", "지우기" 및 "닫기"로 변경합니다.

3. 변수 추가

이 예에서는 CSimpleCalcDlg 클래스의 다음 네 가지 멤버 변수가 사용됩니다.

변수 유형

이름

float

m_N1

float

m_N2

float

m_ 결과

char

연산자

ClassWizard를 사용하여 편집 상자에 변수를 추가합니다: m_N1, m_N2, m_Result

변수 char를 추가하는 방법 연산자:

WorkSpace에서 ClassView 보기를 입력하고 CSimpleCalcDlg를 마우스 오른쪽 버튼으로 클릭한 다음 메뉴에서 "멤버 변수 추가..."를 선택합니다.

그런 다음 팝업에 변수 유형과 이름을 입력합니다. -up 대화 상자:

4. 메시지 매핑 추가

ClassWizard를 사용하여 버튼 컨트롤에 메시지 매핑을 추가합니다.

계속해서 ClassWizard를 사용하여 메시지 매핑을 추가합니다. 라디오 버튼 컨트롤에:

5. 버튼 클릭 시 이벤트 응답 코드 추가

구현 파일(cpp 파일)에 버튼 클릭 시 이벤트 응답 코드 추가 .

(함수 편집에 직접 들어가려면 버튼을 두 번 클릭하세요.)

//연산자 선택

void CSimpleCalcDlg::OnRadio1()

{ Operator=' '; }

void CSimpleCalcDlg::OnRadio2()

{ Operator='-' }

void CSimpleCalcDlg::OnRadio3()

{ 연산자='*'; }

void CSimpleCalcDlg::OnRadio4()

{ 연산자='/' }

//계산

void CSimpleCalcDlg::OnButton1()

{

UpdateData();

스위치(연산자)

{

케이스 ' ':

m_Result=m_N1 m_N2

중단

케이스 '-':

m_Result=m_N1-m_N2;

중단;

사례 '*':

m_Result=m_N1*m_N2;

case '/':

if(m_N2 == 0 )

MessageBox("제수는 0이 될 수 없습니다!");

else

{

m_Result = m_N1/m_N2;

중단

}

기본값:

p>

m_Result=m_N1 m_N2;

}

업데이트데이터(FALSE)

}

//지우기

p>

void CSimpleCalcDlg::OnButton2()

{

UpdateData()

m_N1=0; ;

m_N2 =0;

업데이트데이터(FALSE); //닫기

void CSimpleCalcDlg::OnButton3()

{ CDialog::OnOK() }

6. >

예 3. 복권 기계 프로그램:

이 예는 수동 복권과 자동 복권이라는 두 가지 복권 기계 프로그램 버전을 제공합니다.

1. 복권 기계 인터페이스:

다음과 같이 편집 상자 7개, 진행률(진행률 표시줄) 1개, 탐정 버튼 컨트롤 3개가 포함된 대화 상자 인터페이스를 사용자 정의합니다.

2. >

(1) 진행률 표시줄 변수 설정:

(2) 7개의 편집 상자 변수 설정:

(3) 클래스 멤버 변수 m_x 추가:

3. 메시지 매핑:

ClassWizard에서 4개의 메시지 매핑 함수 OnInitDialog, OnButton1, OnButton2 및 OnOK 생성:

4 코드 추가:

// 초기화

BOOL CLotusDlg::OnInitDialog()

{

CDialog::OnInitDialog();

……

// TODO: 여기에 추가 초기화를 추가하세요.

m_x=0

m_pProg.SetRange(0, 70)

srand( (unsigned) time(NULL));

return TRUE; // 포커스를 컨트롤로 설정하지 않으면 TRUE를 반환합니다.

}

(1) 수동 복권

p>

//수동 복권, 복권 버튼을 누를 때마다 숫자가 나타납니다.

void CLotusDlg::OnButton1()

{

// TODO: 여기에 제어 알림 처리기 코드를 추가하세요.

switch(m_x/10)

{

case 0:

m_N1 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 1:

m_N2 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 2:

m_N3 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 3:

m_N4 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 4:

m_N5 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 5:

m_N6 =rand()36 1;

m_pProg.SetPos(m_x =10)

사례 6:

m_N7 =rand()36 1;

m_pProg.SetPos(m_x =10)

중단;

ateData(FALSE);

}

void CLotusDlg::OnButton2()

{

// TODO: 컨트롤 알림 추가 여기에 핸들러 코드가 있습니다.

m_x=0;

m_N2=0; >

m_N4=0;

m_N5=0;

m_N6=0; 거짓);

m_pProg.SetPos(1)

}

void CLotusDlg::OnOK()

{

CDialog::OnOK();

}

(2) 자동 복권

이전에 구현한 수동 복권 프로그램을 자동 시간 제한 복권으로 수정합니다. .

OnTimer 메시지 매핑 기능 추가:

//복권 버튼을 눌러 복권을 시작하세요.

void CLotusDlg::OnButton1()

{

SetTimer(1, 2000, NULL)

}

void CLotusDlg::OnButton2()

{

m_x=0;

m_N2=0; =0;

m_N5=0;

m_N7=0; p>

m_pProg.SetPos(0);

KillTimer(1)

}

void CLotusDlg::OnTimer(UINT nIDEvent)

{

스위치(m_x/10)

{

사례 0:

m_N1=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 1:

m_N2=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 2:

m_N3=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 3:

m_N4=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 4:

m_N5=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 5:

m_N6=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

사례 6:

m_N7=rand()36 1;

m_pProg.SetPos(m_x =10);

중단

}

업데이트데이터(FALSE)

CDialog::OnTimer(nIDEvent);

}

void CLotusDlg::OnOK()

{

KillTimer (1) ;

CDialog::OnOK();

}

5. 참고:

(1) 생성 방법 난수

unsigned int rand() 함수는 난수를 생성합니다.

void srand(unsigned int Seed) 함수는 난수 생성기의 시드를 설정합니다. 여기서 Seed는 난수 생성기의 시드입니다. 이 예에서 시스템 시계의 현재 값은 다음과 같이 사용됩니다. 난수 시드:

srand((unsigned)time(NULL)); function

rand()36 1 표현식은 1-36 사이의 난수를 생성합니다.

(3) 타이머 사용 방법

타이머 사용에는 OnTimer, SetTimer 및 KillTimer의 세 가지 기능이 포함됩니다.

SetTimer는 타이밍 시간을 설정하고 타이머를 시작하는 데 사용됩니다. 첫 번째 매개변수는 타이밍 번호이고 두 번째 매개변수는 타이밍의 밀리초 수입니다. 이 예에서는 타이머 1번의 타이머가 2초로 설정되어 있습니다.

SetTimer(1, 2000, NULL)

타이머가 시작된 후 계속됩니다. 예정된 시간에 도달할 때마다 OnTimer 메시지 기능이 한 번씩 실행됩니다. KillTimer의 기능은 지정된 타이머의 작동을 중지하는 것입니다.

3.

MFC 단일 문서 애플리케이션 구현의 예

단일 문서 애플리케이션을 생성하기 위한 일반적인 단계:

AppWizard 사용 단일 문서 애플리케이션 프레임워크를 생성합니다.

문서 클래스에서는 문서 데이터를 저장하는 데 필요한 데이터 개체를 선언합니다.

문서 클래스의 OnNewDocument 함수를 완성하고 새 문서를 초기화합니다.

문서 데이터를 유지하고 로드하려면 문서 클래스의 Serialize 기능을 완료하세요.

뷰 클래스의 OnInitialUpdate 함수를 완료하고 디스플레이를 초기화합니다.

현재 문서 내용을 표시하려면 뷰 클래스의 OnDraw 기능을 완료하세요.

사용자가 뷰 클래스에서 문서 데이터를 편집할 수 있도록 하는 데 필요한 코드를 추가합니다.

이 실험 가이드에서는 다음 네 가지 실험을 통해 단일 문서 애플리케이션을 만드는 기본 작업을 단계별로 보여줍니다. 이전 예제에서 수행한 작업은 다음 예제에서 반복되지 않습니다.

예 1 간단한 단일 문서 애플리케이션 - 메모장 프로그램

예 2 간단한 텍스트 및 그래픽 출력

예 3 타이머를 사용하여 롤링 자막 출력

p>

예제 4 문서 직렬화 프로그래밍

예제 1.

간단한 단일 문서 애플리케이션 - 메모장 프로그램

1. Base만 있으면 AppWizard의 6단계에서 클래스가 EditView로 설정되면 AppWizard는 메모장 프로그램의 디자인을 자동으로 완료합니다.

2. 프로그램을 실행하여 메모장의 다양한 기능을 테스트합니다.

3. 설명:

(1) Workshop에서 클래스 보기를 열면 간단한 단일 문서 응용 프로그램 마법사가 자동으로 5개의 클래스를 생성하는 것을 볼 수 있습니다.

마법사에 의해 자동으로 생성된 클래스

p>

해당 소스 파일

기타 소스 파일

해당 헤더 파일

기타 헤더