상대 레이아웃에서 부모 컨테이너와의 상대적 위치를 이용해 뷰를 배치할 수 있는 속성 속성 설명 layout_alignParentTop 부모 컨테이너의 위쪽과 뷰의 위쪽을 맞춤 layout_alignParentBottom 부모 컨테이너의 아래쪽과 뷰의 아래쪽을 맞춤 layout_alignParentLeft 부모 컨테이너의 왼쪽 끝과 뷰의 왼쪽 끝을 맞춤 layout_alignParentRight 부모 컨테이너의 오른쪽 끝과 뷰의 오른쪽 끝을 맞춤 layout_centerHorizontal 부모 컨테이너의 수평 방향 중앙에 배치함 layout_centerVertical 부모 컨테이너의 수직 방향 중앙에 배치함 layout_centerParent 부모 컨테이너의 수평과 수직 방향 중앙에 배치함 부모 컨테이너가..
이펙티브 C++ 책에 대한 정리를 하려고 한다. - #define을 쓰려거든 const, enum, inline을 떠올리자 즉, "가급적 선행 처리자보다 컴파일러를 더 가까이 하자" 라는 말이다. #define ASPECT_RATIO 1.653이 코드를 보면 우리눈에는 ASPECT_RATIO 라는 기호식 이름으로 보이지만 컴파일러 눈에는 그저 1.653으로 보일 뿐이다. 이는 선행처리자가 컴파일 전에 ASPECT_RATIO를 1.653로 바꾸어 버리기 때문인데.. 이 때문에 컴파일러가 쓰는 기호 테이블에 들어가지 않게 된다.이러한 상황에서 에러 발생시 에러 메세지에는 그저 1.653만 출력될뿐.. 이게 어디서 왔는지는 알수 없다.에러 뜨면 내가 작성한 코드라도 머리아픈데 다른 사람이 작성한 코드라 생각해..
CString szText = _T("Thank You"); TCHAR* pCh = szText.GetBuffer(szText.GetLength()); szText.ReleaseBuffer(); 이렇게 하면 간단하게 TCHAR*로 변환 할수 있다. 여기서 중요한건 GetBuffer를 사용했을경우 반듯이 ReleaseBuffer() 를 해줘야 한다. GetBuffer : 인자로 받은 크기만큼 메모리를 잡아서 char배열처럼 사용하도록 해줍니다. ReleaseBuffer : 복사된 문자열이 차지한 공간외에 남는 공간이 생기게 되니 그 남는 공간을 해제해 줍니다.
소켓 모드란? 소켓은 함수(accept(), send(), recv(), sendto(), recvfrom()) 호출 시 동작 방식에 따라 블로킹(Blocking)과 넌블로킹(Nonblocking) 소켓으로 구분한다. 블로킹 소켓 소켓 함수 호출 시 조건이 만족되지 않으면 함수는 리턴하지 않고 해당 스레드는 대기 상태가 된다. 넌블로킹 소켓 소켓 함수 호출 시 조건이 만족되지 않더라도 함수가 리턴하므로 해당 스레드는 계속 진행 할 수 있다. // 블로킹 소켓 생성 SOCKET listenSocket = socket(AF_INET, SOCK_STREAM, 0); if(listenSocket == INVALID_SOCKET) err_quit("socket()"); // 넌블로킹 소켓으로 전환 unsigned..
소켓 옵션이란? 소켓 함수의 기본 동작을 변경할 수 있으며, 이를 이용하여 소켓과 프로토콜 구현 코드에 대한 좀 더 세부적인 제어를 할 수 있게 된다. 소켓 옵션을 설정하는 함수 int setsockopt( SOCK s, // 옵션을 적용할 소켓 int level, // 옵션을 해석하고 처리하는 코드를 나타내며, 옵션 레벨이라 부른다. 소켓코드(SOL_SOKET), IP 프로토콜 코드(IPPROTO_IP), TCP 프로토콜 코드(IPPROTO_TCP) int optname, // 옵션 이름 const char* optval, // 설정할 옵션 값을 담고 있는 버퍼의 주소 int optlen // optval이 가리키는 버퍼의 크기 ); 소켓 옵션을 얻어오는 함수 int getsockopt( SOCK s,..
스레드 하나의 프로세스에서 다중 작업이 동시에 하는 것 스레드 관련 함수 -------------------------------------------------------- HANDLE WINAPI CreateThread( __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, __in SIZE_T dwStackSize, __in LPTHREAD_START_ROUTINE lpStartAddress, __in_opt LPVOID lpParameter, __in DWORD dwCreationFlags, __out_opt LPDWORD lpThreadId ); lpThreadAttributes - 스레드에 대한 보안 속성 구조체 포인터 dwStackSize - 스레드에서 ..
소켓(Socket) 버클리 유닉스 에서 사용한 네트워크 프로그래밍 인터페이스, 이것을 윈도우에서 사용할 수 있도록 한 것을 윈도우 소켓(줄여서 윈속)이라 부름. 윈도우 95버전부터 API에 정식으로 포함하여 제공되었고, 현재는 WinSock2 버전까지 나옴. 윈속(Windows Socket, Winsock) DLL를 통해 기능이 제공됨(WS2_32.DLL) 윈도우의 메세지 구동방식으로 동작하므로, 이를 위한 확장 함수 존재 유닉스 소켓과 소스 코드 수준에서 호환성이 높으므로 기존 프로그램을 포팅하기 쉽다. OS별 윈속 버전은 다음과 같다. 윈도우 95 - 1.1 윈도우 98/Me, 윈도우 NT/2000/XP/2003 - 2.2 윈도우 CE - 1.1 #include "stdafx.h" #include /..
Network 란? 1:1, 1:n, n:1, n:n의 다자간 통신을 의미한다.(방송, 인터넷 등) 인터넷 이란? 미국에서 군사용 목적으로 컴퓨터와 컴퓨터간의 통신망을 생활에 도입한 네트워크 시스템이다. 통신을 하는 방식은 종단 시스템(end-system)과 라우터(router) 개체를 이용한 통신을 한다. * 종단 시스템 - PC, PDA, 휴대폰 등 * 라우터 - 종단 시스템이 속한 네트워크와 서로 다른 네트워크에 속한 종단 시스템끼리 통신할 수 있도록 해 주는 개체 프로토콜 각 네트워크 개체간 통신을 위한 규약(TCP/IP, UDP, 각 종 서비스를 위한 프로토콜 - HTTP, FTP, Gopher, IPX 등) 네트워크의 계층 구조 어플리케이션 계층(Telnet, Ftp, Http, Smtp 등)..