본문 바로가기

프로그램언어/C++

c++ 표준 라이브러리 array 컨테이너 클래스 템플릿 배열 및 여러 지원 템플릿을 정의 헤더 : #include 연산자 이름 설명 operator== 배열 비교, 같다 operator!= 배열 비교, 같지 않다 연산자= 배열 비교, 크거나 같다 연산자> 배열 비교, 보다 크다 operator 더보기
윈도우 프로그램기초예제 다음과 같은 형태의 윈도우를 만들라. 윈도우 타이틀 바에 '홍길동의 첫 번째 윈도우'라고 나타나게 한다. 윈도우의 배경 색은 검은색으로 한다. 아이콘은 물음표가 되게 한다. 마우스는 대문자 I 모양으로 한다. 윈도우가 나타날 위치는 (200,300)으로 한다. 윈도우의 크기는 600*400이 되게 한다. #include #include LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS Wn.. 더보기
스레드 _beginthreadex() 함수 : 스래스 생성하기 uintptr_t _beginthreadex( // 스레드 핸들 값 반환 void *security, // SECURITY_ATTRIBUTES 구조체의 포인터 변수, NULL을 사용 unsigned stack_size, // 스레드를 위한 스택의 크기, 0을 사용 unsigned ( *start_address )( void * ), // 스레드를 실행할 함수 이름 void *arglist, // 스레드 함수에 전달될 매개변수 주소 unsigned initflag, // 스레드 상태 지정 값으로 실행하기 위해 0을 사용 unsigned *thrdaddr // 스레드 ID를 받기 위한 32비트 포인터 변수, NULL을 사용 ); _endthreadex(.. 더보기
윈도우 소켓2 논블로킹 통신 논블로킹이란 서버가 무한정 기다리지 않고 다른 일을 하다가 연결을 시도하는 신호가 도착하거나 통신 메시지가 도착하면 사용자가 정의한 윈도우 메시지를 보내는 방식이다. WSAAsyncSelect() 함수 : 윈도우 메시지, 네트워크 이벤트 등록 함수 int WSAAsyncSelect( SOCKET s, // 연결된 소켓 HWND hWnd, // 메시지가 발생하는 윈도우의 핸들 unsigned int wMsg, // 등록될 윈도우 메시지 long lEvent // 등록될 네트워크 이벤트 ); //성공시 0을 반환, 실패시 SOCKET_ERROR 반환 //네트워크 이벤트 enum NetworkEvent { FD_ACCEPT, //클라이언트가 접속하면 윈도우 메시지가 발생 FD_READ, //수신.. 더보기
윈도우 소켓1 윈도우 소켓을 이용하여 프로그램을 작성하기 위해서는 ws2_32.lib 라이브러리를 추가해야한다. WSAData 구조체 : 윈도우 소켓 초기화 정보를 가지고 있는 구조체 struct WSAData { WORD wVersion; // 윈도우 소켓의 버전 WORD wHighVersion; // 지원되는 소켓의 상위 버전으로 wVersion과 일치 char szDescription[WSADESCRIPTION_LEN+1]; // NULL로 끝나는 아스키 스트링 값, 윈속 설명 char szSystemStatus[WSASYS_STATUS_LEN+1]; // NULL로 끝나는 아스키 스트링 값. 상태 문자열 unsigned short iMaxSockets; // 사용할 소켓의 최대 소켓 수, version 2부터는.. 더보기
파일 입출력2 메모장 만들기1 텍스트 컨트롤을 이용하여 메모장 만들기 #include #include #include #include "resource.h" LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); HINSTANCE hInst; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASS WndClass; hInst = hInstance; WndClass.style = CS_HREDRAW | CS_VREDRAW; WndClass.lpfnWndProc = .. 더보기
파일 입출력1 파일만들기 CreateFile() 함수 : 파일 생성 함수 HANDLE CreateFile( LPCTSTR lpFileName, // 생성하고자 하는 파일명 DWORD dwDesiredAccess, // 읽기, 쓰기, 읽기/쓰기 세 가지 모드 중 하나 지정 DWORD dwShareMode, // 파일의 공유 모드 지정 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 파일의 보안 속성에 대한 포인터 DWORD dwCreationDisposition, // 파일을 생성할 것인지 열 것인지 지정. DWORD dwFlagsAndAttributes, // 생성할 파일의 속성 HANDLE hTemplateFile // 새로 만들 파일의 속성을 제공할 템플릿 파일 ); LPCTST.. 더보기
컨트롤 윈도우 사용하기 CreateWindow()함수 HWND CreateWindow( LPCTSTR lpClassName, // 클래스 이름 LPCTSTR lpWindowName, // 윈도우 제목 텍스트 DWORD dwStyle, // 생성할 윈도우의 스타일 int x, // 원도우 왼쪽 위 모서리의 x좌표 int y, // 원도우 위쪽 위 모서리의 y좌표 int nWidth, // 윈도우 가로 길이 int nHeight, // 윈도우 세로 길이 HWND hWndParent, // 부모 윈도우 핸들 HMENU hMenu, // 윈도우 메뉴(컨트롤 ID) HINSTANCE hInstance, // 윈도우를 생성할 인스턴스 핸들 LPVOID lpParam // WM_CREATE 메시지에 넘길 전달 인자 ); 버튼 컨트롤 윈도우.. 더보기