집에서 심심하면 만들고 있는 토이 프로젝트가 있는데 익숙치 않은 mfc라 힘들다~ 위와 같이 기본 list control을 생성 후각 컬럼과 열에 data를 넣어준 뒤 클릭벤트를 걸어주면row 전체가 선택이 되는게 아니라 첫번째 열(column)만이 선택이된다. 이럴때 마법과 같은 코드 한줄이면 전체 선택이 된다. 리스트컨트롤 변수를 생성하여 아래의 코드를 onInitDialog쪽에 쳐주면 끝 CListCtrl test;test.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); LVS_EX_FULLROWSELECT만 적용된 경우 LVS_EX_FULLROWSELEC | LVS_EX_GRIDLINES 적용된 경우 그 이외에 스타일 추가는 msdn에 있을..
void CAVI_PROJECTDlg::OnBnClickedBtnFind() { BROWSEINFO BrInfo; TCHAR szBuffer[512]; // 경로저장 버퍼 ::ZeroMemory(&BrInfo,sizeof(BROWSEINFO)); ::ZeroMemory(szBuffer, 512); BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.lpszTitle = _T("파일이 저장될 폴더를 선택하세요"); BrInfo.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX | BIF_RETURNONLYFSDIRS; LPITEMIDLIST pItemIdList = ::SHBrowseForFolder(&BrInfo); ::SHGetPathFromIDList(..
일반적으로 소켓 프로그램은 서비스를 요청하는 클라이언트측과 클라이언트로부터의요청을 받아 서비스하는 서버측, 이렇게 두 곳에 상주하는 프로그램으로 구성된다. 우리가 구현할 소켓 스포르갬은 c언어로 작성했던 한 줄 짜리 문자열 출력 프로그램에 네트워크 기능을 부여하여 호스트사이세서 서로 통신하며 자료를 송수신할 수 있게 한것이다. 즉 클라이언트 프로그램이 네트워크상에서 통신 채널을 통해 서버측에 연결되면 서버 프로그램은 즉시 문자열 hello world를 클라이언트에게 전송하고 클라이언트 프로그램은 전송받은 문자열을 화면에 출력한다. 일반 프로그램에서는 문자열 출력이 한 컴퓨터에서 이루어졌던 것에 비해 소켓프로그램에서는 네트워크상에 있는 호스트 간에 문자열을 받아 출력하기 때문에 소켓과 같은 네트워크 연결 ..
TCP/IP는 대표적인 광역 네트워크 프로토콜이다. 미국의 군사 네트워크에서 활용했떤 프로토콜이였으나 이제는 전세계로 묶는 네트워크 프로토콜로 발전했다. 웹브라우져를 통해 URL이나 IP주소를 입력하면 해당 사이트에 접속하여 웹 페이지가 열린다. 너무나 간단해 보이지만 여기에는 아주 복잡한 네트워킹 과정이 담겨 있다. 웹 통신 프로토콜인 HTTP 프로토콜은 TCP/IP 프로토콜을 기반으로 만들어져있다. IP주소전세계를 연결하는 TCP/IP 네트워크에 접속하려면 IP주소를 하나 갖고 있어야한다. 이주소는 친구의 집 주소와 같은 형식은 아니지만 전 세계에서 중복되지 않는 유일한 숫자(IPV4 체계에서는 32비트 숮자)이다. 따라서 이 주소만 알면 주소지 컴퓨터로 정보를 전달할 수있다. 물론 상대뿐만 아니라 ..
프로그래밍에서 동기화가 필요한 경우는 매우 다양하다.컴퓨터에서 자원이라 함은 주로 cpu나 메모리를 의미하는데 연산에 직접적으로 관여하는 부품을 말한다. 주변 정보기기와 통신하기 위한 인터럽트나 I/O 번지도 굳이 따지면 자원으로 분류된다. 그런데 이런 자원은 늘 제한되는 특성을 갖는다. 반면에 시스템은 여러 프로세스를 동시에 실행하여 운영하게 되면서, 각각의 프로세스는 저마다의 코드에 따라 특정 자원을 점유하려는 시도를 끊임없이 하게 된다. 이런 시도를 조정할 관리 시스템이 없다면 프로세스간의 충돌이 있을것이다. 지금부터 나오는 내용은 이런 구조적인 문제를 해결하기 위해 운영체제에 도입된 객체를 활용하는 방법이다.운영체제가 제공하는 동기화용 커널객체에는 뮤텍스, 세마포어, 이벤트 등이 있다. 사용자 모..
Comma Separated Values (CSV) 한 레코드의 각 필드를 쉼표(,)로 구분한 텍스트 기반 데이터 파일 포맷이다. 확장자는 .csv이며 MIME 형식은 text/csv이다. 한글로 씨에스브이 라고 읽는다. 홍길동 1992년 7월 17일 국어100점 영어90점 수학70점희동이 1992년 4월 3일 국어90점 영어100점 수학100점예를 들어 학생기록부에 위와 같은 데이터를 CSV로 저장한다고 하면 홍길동,1992,7,17,100,90,70 희동이,1992,4,3,90,70,100 과 같이 저장된다. CSV포맷의 줄 바꿈 문자는 라인 피드(LF) 또는 캐리지 리턴-라인 피드(CRLF)를 사용한다. 단점은 데이터 자체에 쉼표가 들어가 있는 형태의 데이터를 취급하기 곤란하다. 예를 들어 천 단위..
스레드란?OS에서 하나의 프로그램이 실행된다는것은 하나의 프로세스가 생성된다는 의미와 같다. 그렇다면 이 프로세스는 작업 관리자를 통해서 직접 볼수 있는 단위이다. 일반적으로 프로세스는 하나의 실행 파일이 실행될 때 만들어지며, 운영체재 내부적으로는 여러 논리적 코드를 관리하는 단위이기도 하다. 하지만 실행 단위를 논할 때 기본적으로 프로세스지만 더 정확히는 스레드이다. 프로세스가 하나의 집이라 가정하면 집에 거주하는 사람은 스레드가 된다. 한집에 한명이 살수도 있지만 여러명이 사는 집도 있다. 이렇다면 제한적인 자원을 여러 구성원이 공유해서 사용해야하며 문제가 발생하지 않도록 묵시적인 규칙이 있어서 이에 따라 운영되어야 한다는 것이다. 멀티스레드 프로그래밍에서 이런 이슈처럼 서로 충돌하는일이 없도록 동..
MFC란? - Microsoft사에서 만든 C++기반 윈도우 라이브러리이다. - Win32 API 는 C기반이지만 MFC Programming은 C++ 기반이다. 왜 MFC를 사용하는가? - 객체지향 (코드의 재사용) - 다양한 함수 제공한다. - MFC Framework에 Win32 API를 섞어 사용 (사실 Win32 API를 클래스화하여 wrapping한 것으로도 봄) CWnd Class (중요) - CWnd는 MFC의 부모라 불리는 CObject 클래스와 CCmdTarget 클래스를 상속받은 클래스이다. - CCmdTarget 클래스는 메세지 맵과 관련된 코드가 구 현된다. ( WinProc()의 switch case문을 대체하고 자 도입된 MFC구조이다.) - CWnd는 MFC가 제공한 모든 윈..
- Total
- Today
- Yesterday
- 대항해시대 넷마블 런처
- Linux
- vite.js
- 정보처리기사 실기 후기
- JNI
- 데스큐어
- 다클 빈
- 대항해시대 다클
- 대항해시대 다음 런처
- 합격 후기
- 정보처리기사 2018 2회
- React.js
- JNI INVOKE
- 정처기 실기
- 구글 클라우드 플랫폼
- 폴더선택다이얼로그
- EACCES: permission denied
- OSI 7Layer
- JNI 시그니처
- 위대한 쇼맨 후기
- 대항해시대 로그인
- HTTPie
- 빈파일
- lxd
- 위대한 쇼맨 ost
- 대항해시대
- 위대한 쇼맨
- JNI SIGNITURE
- 다클 코드
- 대항해시대 런처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |