이번에는 클라이언트 프로그램을 만들어 보려할 것이다. 클라이언트 프로그래밍은 자기 자신만 신경쓰면 되기 때문에 서버 프로그래밍보다 간단하다. 우선 프로젝트를 생성해주자. 그리고 아래의 그림처럼 리스트 박스와 edit box, 버튼을 추가해 주자. 각각의 도구상자의 속성을 수정해 주면 된다. 리스트 박스를 클릭한 후에 변수 추가를 눌러 변수를 추가해 주자. 변수의 이름은 m_event_list로 해주면 된다. stdafx.h 파일에 위의 코드를 추가해 주면 된다. 그리고 .cpp 파일로 가서 위의 그림과 같이 제거할 것과 추가할 것을 넣어주면 된다. Dlg.h 파일로 가서 위의 그림과 같이 추가해 주자.위의 그림에서 mh_socket을 INVALID_SOCKET으로 초기화 해주었다. 이것의 의미는 -1으로..
이전에 했던 서버 만들기를 이어서 하겠다. 서버에 사용자가 접속하고 접속을 해제할 때, 사용자의 정보를 List Box에 나타내주려고 한다. 먼저 사용자가 접속시 사용자의 정보를 나타내도록 하겠다. 이제 데이터를 수신하도록 처리해야 한다. 데이터를 저장하거나 보내는 경우는 자동으로 일어나기 때문에 문제가 없지만, 데이터를 읽어 들이는 경우 (클라이언트가 서버로 데이터 전송) 그 파일 데이터의 크기를 모르기 때문에 데이터가 더는 전송되지 않을 때까지 읽어 나가야 한다. 따라서 효율적으로 하기 위해 '패킷(또는 프레임)'이라는 방식을 사용한다.패킷은 네트워크상에서 한 번에 전송하는 정보의 단위를 뜻한다. 데이터는 Header와 Body로 나누어지는데, 헤더를 통해 바디의 정보를 알 수 있도록 정보를 쪼개서 ..
컨트롤에 대해서 더 알아보자.이번에는 ListBox 라는 컨트롤에 대해서 알아볼 것이다. 기본 컨트롤 중 유일하게 자료구조를 가진다.다른 컨트롤에 비해서 활용가치가 높기에 잘 알아두면 좋다. 문자열을 목록화 시켜 보여주고, 함수가 많고 다양한 사용방법이 있다. 도구 상자에서 ListBox를 추가하고, Edit Control과 Button도 같이 추가해 보자. 리스트 박스를 쓰기 위해서 더블 클릭해 함수를 만드는 것보다 멤버 변수를 선언해주는 것이 좋기 때문에 멤버 변수를 선언해 준다. 선언 방법은 오른쪽 클릭해 변수 추가를 눌러주면 된다. 엑세스 부분은 public이 아닌 private 이나 protected로 변경해주는 변수 이름은 m_name_list로 해준다.그리고 버튼 이름을 수정 후 더블 클릭해..
이번에는 대화상자 컨트롤에 대해 알아보고, 컨트롤을 이용해 계산기 프로그램을 만들어 보려고 한다. 프로젝트를 처음 생성하게 되면 아래와 같은 화면이 나오게 된다. 대화상자가 보이며, [확인] [취소]는 버튼 컨트롤에 해당하며 CButton 클래스를 사용한다.여기에 우리는 도구 상자 탭에서 Edit Control을 대화상자에 삽입해보도록 하겠다. 도구상자에서 드래그앤 드롭이나 더블 클릭으로 넣을 수 있다.대화상자에 원하는 컨트롤을 넣으면 아래와 같은 그림이 된다. 컨트롤의 속성창에 가면 Control ID와 Caption을 설정할 수 있다. 흔히 타이틀이라고 알고 있는 부분이 Caption 부분이다. 계산 기능을 만들기 위해 컨트롤들을 더 삽입해 보자. 덧셈 기능을 만들어 보려 한다. 먼저 값들을 넣을 E..
이번에는 화투 이미지를 이용해 짝을 맞추는 게임을 만들어 보려 한다.화투의 이미지는 뒷면 1장, 앞면 18장으로 총 19장으로 구성되어 있다. 대화상자형식으로 프로젝트를 만든 후 우선 헤더파일로 가서 카드 이미지를 불러오기 위해 CImage로 선언을 한다. 이 클래스는 외부 이미지를 불러와 출력할 때 사용되는 것이다. private :CImage m_card_image[19]; 일반적으로 윈도우가 만들어질 때, 운영체제가 wm_creat 메시지를 준다. 따라서 만들고 바로 쓰지 말고 wm_creat 메시지를 받은 뒤 써야한다. 하지만 대화상자는 wm_creat 가 발생하는 때가 자기 자시만 만들어졌을 때 이고, 리소스를 포함한 모든게 만들어질때, wm_initDialo가 발생한다. 따라서 대화상자는 이 ..
이번에 해볼 실습은 빈 화면에 왼쪽 마우스를 클릭하면 사각형이 만들어지는 것을 하려고 한다. 먼저 프로젝트 탭에서 클래스 마법사를 클릭해 왼쪽 마우스를 클릭시 어떠한 행위가 나타나는 소스를 추가해보자. 위와 같은 화면이 나오면서 클래스 이름이 반드시 뒤에 Dlg가 붙어야하고, 메시지 탭에서 WM_LBUTTONDOWN을 검색해 소스를 추가시키면 된다. 그러면 아래와 같은 소스가 추가된다. 첫번째 인자는 마우스 왼쪽 버튼을 눌렀을때, 조합키가 있는지 확인하는 변수이고, 두번째 변수는 클릭한 마우스의 좌표를 의미하는 변수이다.API를 가지고 그리는 방법과 MFC를 이용하여 그리는 방법 2가지가 있다.먼저 API에 대해서 설명하겠다. 윈도우에서 그리기를 하려면 해당 윈도우에서 사용할 수 있는 DC를 얻어와야 한..
MFC란 Microsoft Foundation Class의 약자로 C++ 언어가 제공하는 거의 모든 문법적인 요소들을 잘 적용하여 윈도우 API를 클래스화한 방대한 라이브러리이다. C++언어를 사용하는 경우 API 함수들이 모두 C형태로 제공되기에, C++형식에 맞도록 재구성해야 하는데, 너무 많아 개인적인 작업은 거의 불가능하다. 따라서 MS에서 C++개발자를 위해 API 함수와 API 함수가 사용하는 구조체들을 모아 클래스를 만들어 놓았다. Win32 API의 경우 WinMain으로 시작한다. C언어에서의 main 함수라고 생각하면 된다. WinMain은 다음과 같은 구조로 되어있다. 1. 윈도우 클래스 등록 2. 메인 윈도우 생성 3. 메시지 처리 먼저 윈도우 클래스에서 클래스는 C++에서의 클래스..
C언어의 특징 C언어가 어떤 특징을 가지는지 일상 생활에서 찾아볼 수 있다.편의점을 예로 들어, 편의점에는 계산대와 물품들이 나열되어 있는 진열대로 구분할 수 있다.이때 손님들은 자기가 원하는 물품들을 진열대에서 골라 계산대에서 결제후 가져가는 형태이다.C언어도 이와 같다고 생각하면 된다. 데이터들이 진열대에 나열되어 있고, 필요한 데이터들을 선택 후,계산대에서 체크후, 데이터들을 가지고 나가면 된다. 이는 매우 자율도가 높다고 볼 수 있다.단점이 있다면 도난의 위험이 있다는 것이다. 그리고 손님이 원하는 물건의 위치가 바뀔 때 마다 손님은 물건의위치를 다시 찾아야 한다는 단점이 있다. C++의 특징 C++언어의 특징을 일상 생활에서 찾아보면 은행과 같다고 생각할 수 있다.은행 창구가 있고, 그 창구에 ..
구조체와 연결 리스트 typedef 문법 프로그래머가 기존의 자료형을 짧고 간결하게 정의할 때 사용한다. 자료형을 단순한 형태의 새 자료형으로 바꾸기 typedef unsigned short int US; //unsigned short int를 US로 재정의US temp; //재정의한 자료형을 사용하기 typedef의 장점 복잡해 보이는 문법을 쉽게 표현할 수 있다.- 일반 변수 형식뿐만 아니라 배열, 포인터 형식도 재정의 가능하다. typedef int MY_DATA[5];MY_DATA temp; typedef 사용 여부 확인 방법 재정의한 자료형 위에 마우스를 올려 놓으면 정의를 쉽게 확인 가능 typedef의 장점 int (*p)[5]; 20바이트의 사용 범위를 가지는 포인터 변수 선언한 것이다.연..
메모리 할당 프로그램과 프로세스 프로그램은 프로그래머가 만든 실행 파일이다. 프로그램과 프로세스가 뭐가 다른지 알아보자. 이 둘의 차이는 명확하다. 프로그램 자체는 보조기억장치에 존재하며 실행되기를 기다리는 명령어와 정적인 데이터의 묶음이다. 이 프로그램의 명령어와 정적 데이터가 메모리에 올라가게 되면 프로세스가 된다. 프로세스는 실행파일에 있는 명령들을 CPU가 직접 실행할 수 없기 때문에, CPU가 이 명령들을 실행할 수 있도록 먼저 운영체제가 실행 파일의 명령들을 읽어서 메모리에 재구성 하는것이다. 즉 다시 말해 프로세스란 실행 중인 프로그램이다. 메모리 할당이란? 사용할 메모리 공간을 계획적으로 잘 나누는 것을 말한다. 정적 메모리 할당 컴파일러가 코드를 기계어로 번역하는 시점에 변수를 저장할 메..
- Total
- Today
- Yesterday
- 이미지게임
- tipsoft
- 오일러
- 팁스강좌
- 비손실 압축
- 오일러 프로젝트 11번
- 오일러 프로젝트 8번
- 실행 압축
- 와이어샤크
- tipssoft
- CBrush
- 오일러 프로젝트 16번
- 허프만 알고리즘
- 오일러 프로젝트 13
- 오일러 프로젝트 12번
- 오일러 프로젝트 14번
- 패킷
- MFC
- arp
- TIPS강좌
- 2의 1000승
- 오일러 프로젝트 10본
- 서버
- Tips
- 약수 500개
- 화투이미지맞추기
- 헤더
- Omok
- 키보드 메시지 이벤트
- tipsr강좌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |