분류 전체보기 187

[C++] Socket통신

------------ 클라이언트 ----------- // client.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.//#include "stdafx.h"#include "client.h"#include "stdio.h"#include "winsock2.h"#pragma comment(lib, "ws2_32.lib")#define DESIRED_WINSOCK_VERSION        0x0202#define MINIMUM_WINSOCK_VERSION        0x0001#define MAXBUF 256#ifdef _DEBUG#define new DEBUG_NEW#endif// 유일한 응용 프로그램 개체입니다.CWinApp theApp;using namespace std;int _tma..

기본카테고리 2013.09.18

[Linux] 프로그램 개발 방법

1. 프로세스  - 목록 보기 : ps -ax - 죽이기 : kill [-프로세스번호]2. 파일 - 이름변경 : mv3. gcc 사용 -o [...] : 출력(output) 화일명을 정함. 예) gcc -o hello hello.cpp -c : 오로지 컴파일(compile) 작업만 하고 싶은 경우 즉, 오브젝트 파일(*.o) 생성. 가능한 -fPIC 옵션을 같이 사용한다. -l : 라이브러리 파일 지정. (소문자 L)4. 라이브러리 관리 명령 : ar [-]옵션 파일명 ==> 라이브러리 파일의 확장자 : *.a -r : 라이브러리 파일을 만든다. 예) ar r [...]5. 정적 라이브러리 만들어 쓰기 (파일 확장자 : *.a) 1) Object 코드 만들기   $ gcc –c square.c ..

기본카테고리 2013.07.12

[Linux] Thread

Thread에 대해서 ¶프로그램을 병렬로 실행시키는 방법으로 fork()에 대해서 알아보았다. fork()는 매우 이해하기 쉬운 프로그래밍 방법이긴 하지만 자원효율성에서 몇가지 문제점을 가지고 있다. 프로세스는 기본적으로 code, data, stack, file I/O, 그리고 signal table의 5가지 요소로 구성이 된다. fork()를 이용해서 새로운 프로세스를 생성하게 되면, 이러한 5가지 구성요소가 모두 복사가 된다. 그러하다 보니 프로세스를 생성하는데 많은 비용이 소비될 것이다. 대게의 경우에는 프로세스를 새로 생성시킬때 발생하는 성능저하가 문제가 되지는 않겠지만 웹서비스처럼 대량의 접근이 발생하는 영역에서는 문제가 될 수 있다.fork의 이러한 방식은 상당히 효율이 떨어지는 측면이 있다..

기본카테고리 2013.07.11

[VC++] STL(Standard Template Library)

C++를 주 프로그래밍 언어로 사용하고 계신 분들은 알고 있으리라 생각합니다. STL은 C++ 언어의 '표준 템플릿 라이브러리 (Standard Template Library) '의 약자입니다.STL을 간단하게 말하자면 일반적으로 많이 사용될 수 있는 자료구조와 알고리즘 모음 라이브러리가 말할 수 있습니다.STL은 C++ 언어가 처음 만들어질 때부터 있었던 것이 아니고 1998년에 C++ 표준이 정해지기 전인 1993년 말 무렵에 Alex Stepanov가 C++ 언어의 창시자인 Bjarne Stroustrup에게 보여준 후 준비 기간을 걸쳐서 1994년에 표준 위원회에 초안이 통과됩니다.참고로 C++ 표준은 1989년에 시작되어 1998년 9월에 마무리되었습니다.STL은 어떻게 만들었을까요?답은 위에 ..

기본카테고리 2013.05.11

[C++] 함수 템플릿

두 값을 비교하는 함수를 만들어야 됩니다.앞서 제가 하는 일을 이야기했습니다. 네, 온라인 게임을 만들고 있습니다. 게임에서 구현해야 되는 것에는 캐릭터 간에 HP를 비교하는 것이 필요합니다. 그래서 두 개의 int 타입을 비교하는 Max라는 이름의 함수를 하나 만들었습니다.int Max( int a, int b );일을 다 끝낸 후 다음 기획서를 보니 캐릭터와 NPC가 전투를 하는 것을 구현해야 되는데 여기에는 경험치를 비교하는 기능이 필요합니다. 구현해야 되는 것은 위에서 만든 Max 함수와 같습니다. 그래서 그것을 사용하였습니다.#include using namespace std;int Max( int a, int b ){ return a > b ? a : b;}void main(){ int C..

기본카테고리 2013.05.11

[C++] 클래스 템플릿

클래스 템플릿에 대해서 설명하려고 합니다. 클래스 템플릿을 아주 간단하게 말하면 함수 템플릿이 함수에 템플릿을 사용한 것처럼 클래스 템플릿은 클래스에 템플릿을 사용한 것입니다.그러니 함수 템플릿에 대해서 잘 모르시는 분은 꼭 함수 템플릿에 대한 글을 먼저 보고 이 글을 보는 것이 이해하기에 좋습니다.경험치 변경 이력 저장기획팀에서 유저들이 게임에 접속하여 다른 유저들과 100번의 게임을 했을 때 유저들의 경험치가 변경 되는 이력을 볼 수 있기를 요청 하였습니다.기획팀의 요구를 들어주기 위해서 저는 게임이 끝날 때마다 경험치를 저장합니다. 또 경험치 이력 내역을 출력할 때 가장 최신에서 가장 오랜 된 것을 보여줘야 되기 때문에 스택(stack)이라는 자료 구조를 사용합니다.스택은 자료 구조 중의 하나로 가..

기본카테고리 2013.05.11

[C++] 연결리스트 (STL 사용)

STL은 C++ 템플릿을 사용해 만든 표준 라이브러리입니다. 그러니 템플릿에 대해서 아직 잘 모르시는 분들은 앞에 연재한 템플릿에 대한 글을 읽어보시기를 권합니다. 일반적으로 STL 중에서 가장 많이 사용하는 라이브러리는 컨테이너 라이브러리입니다. 컨테이너는 말 그대로 무엇인가를 담는 것입니다. 컨테이너는 int나 float 등의 기본 자료 형이나 구조체, 클래스같은 유저 정의 자료 형을 담습니다. STL의 컨테이너는 list, vector, deque, map, set이 있습니다. 이번 회는 list에 대해서 이야기합니다.list의 자료구조list는 자료구조 중 '연결 리스트'를 템플릿으로 구현한 것입니다. 그래서 list를 알려면 '연결 리스트'라는 자료구조의 이해가 꼭 필요합니다. 연결 리스트는 단..

기본카테고리 2013.05.11

[VC++] 단축키 및 주석 매크로

[VC] 단축키Ctrl + Tab Edit하고 있는 Child Window 간의 이동 Ctrl + F4 현재 Edit하고 있는 Child Window를 닫기 Ctrl + I 문자열 입력 점진적으로 문자열 찾기 (Incremental Search) Ctrl + F3 현재 커서에 있는 문자열 찾기 fowared (블록 지정 안 해도 됨) Shift + F3 현재 커서에 있는 문자열 찾기 backward F3 찾은 문자열에 대한 다음 문자열로 이동 (Next Search) Ctrl + H 문자열 찾아 바꾸기 (Replace) Ctrl + Left/Right Arrow 단어 단위로 이동 Ctrl + Delete 또는 Backspace 단어 단위로 삭제 Ctrl + F2 현재 라인에 북마크 지정/해제 F2 지정된..

기본카테고리 2013.05.06

[VC++]20130425-ski

=========================================================================================> void CQMSTagManagement::LoadListDataP(){ if(m_csTagType.GetLength() ==0 || m_csLine.GetLength() == 0 || m_csMachine.GetLength() ==0  || m_csClassify.GetLength() == 0) {  AfxMessageBox("구분,라인,설비,분류 모두 선택하셔야합니다.");  return; } //정성훈: 비모니터링 인자조회일 경우 m_bMonitoringParam=true //어디서 꼬였는지 모르지만 컬러 표시가 안됨. //컬러가 m_Ch..

카테고리 없음 2013.04.25