Visual Studio 2012 사용 스레드(Thread)를 활용해보자. 스레드 한개를 미리 생성해서 대기시켜놓고, Run명령을 통해 작동/중지시키고 Stop명령을 통해 스레드를 종료하는 방법까지 다뤄본다. 1. 선언 // header.h CWinThread *m_pThread; HANDLE hThread; bool m_bRun, m_bStop; static UINT RunThread(LPVOID pParam); //... m_pThread을 통해 스레드를 시작하고, hThread에 해당 핸들을 넣는다.m_bRun, m_bStop으로 스레드를 시작하거나 종료하는 구문을 넣는다.RunThread는 스레드 시작시 사용할 함수 원형이다. 2. 정의 1) OnInitDialog // main.cpp BOOL ..
Visual Studio 2012 다이얼로그 크기 조절시 안에 있는 컨트롤 사이즈도 자동으로 조절해보자. 간단히 컨트롤을 조절하기 위해 인터넷 검색 중 덴마크의 Marc Richarme 아저씨가 만든 EasySize란 좋은 매크로를 발견하여 공유합니다. 소스는 여기서 받는다. EasySize 사용하기 1. 받은 EasySize.h 파일을 프로젝트의 stdafx.h에 포함시킨다. // ... #include "EasySize.h" //... 2. 클래스 선언함수 안에 DECLARE_EASYSIZE를 추가한다. (세미콜론을 넣지 않는다.) // ... // TestDlg.h : 헤더 파일 // CTestDlg 대화 상자 class CTestDlg : public CDialog { //... DECLARE_E..
Visual Studio 2012 운영체제의 Bit를 확인해보자(32Bit/64Bit). 1. 함수원형은 다음과 같다. // ... BOOL Is64BitWindows(); //... 2. 소스코드 클래스이름에 본인이 작업할 클래스명을 적으면 된다. OS가 64비트면 TRUE, 32비트면 FALSE를 반환한다. // ... BOOL 클래스이름::Is64BitWindows() { #if defined(_WIN64) return TRUE; // 64-bit programs run only on Win64 #elif defined(_WIN32) // 32-bit programs run on both 32-bit and 64-bit Windows // so must sniff BOOL f64 = FALSE; r..
Visual Studio 2012 MFC에서 ping command 실행하여 값을 확인해보자. 1. 함수원형은 다음과 같다. 매개변수인 pCmdArg에 기존 명령프롬프트에서 사용하는 명령어를 넣으면 된다. // ... CString ExecCmd( LPCSTR pCmdArg); //... 2. 소스코드 클래스이름에 본인이 작업할 클래스명을 적으면 된다. Pipe를 통해서 CreateProcess로 만들어진 자식프로세스의 읽기나 쓰기가 가능하다 // ... CString 클래스이름::ExecCmd( LPCSTR pCmdArg) { // Handle Inheritance - to pipe child's stdout via pipes to parent, handles must be inherited. // S..
Visual Studio 2012 CListCtrl 을 활용해서 리스트에 있는 내용을 클립보드로 복사하기 1. 클립보드 복사 함수 함수 원형은 다음과 같다. 매개변수는 CListCtrl 포인터와 클립보드 저장 시 셀의 데이터를 나누는 기준(기본값 은 탭[\t]) // ... BOOLCopyListToClipboard(CListCtrl* pListCtrl, LPCTSTR lpszSeparator = _T("\t")); //... 함수 소스코드는 아래를 참조한다. 클래스이름에 본인이 쓰려는 클래스 이름을 넣으면 된다. 리스트에서 컬럼 제목과 선택된 리스트 데이터들을 클립보드에 복사하는 내용이다. // ... BOOL 클래스이름::CopyListToClipboard(CListCtrl* pListCtrl, LP..
Visual Studio 2012 비주얼 스튜디오 2010부터 람다 함수를 지원한다.(C++11 기준) MFC를 사용하면서 CArray나 CStringArray를 사용하게 되었는데, 정렬 기능을 지원하지 않기에 검색한 내용을 바탕으로 작성하였다. 1. 람다 함수간단하게 표현하면 아래와 같다. 자세한건 검색으로 찾아보자.[변수 캡쳐] (받을 인자)-> 리턴타입{함수}(넘길인자) 2. CArray 사용하기우선 CArray를 사용하기 위해선 아래와 헤더를 선언하여야한다. // ... #include // ... CArray도 선언하자. // ... CArray arr; // ... 3. 람다 함수를 사용하여 정렬하기 // ... CArray arr; arr.Add(10); arr.Add(5); arr.Add(..
Visual Studio 2012 멀티 스레드를 사용하여 소켓통신용 서버 프로그램을 만들어보자. 기존에 만들었던 소켓통신 채팅 서버프로그램에서 몇가지 수정하고 추가하면 된다. 1. CWinThread용 클래스 생성 및 구현 클래스 마법사에서 'MFC 클래스' 클릭 클래스 추가 - 기본클래스는 CWinThread으로 지정 CSocketThread 클래스 - 필요 함수SetWnd : 다이얼로그의 핸들을 받기 위한 함수 함수 및 핸들 변수 선언// CSocketThread.h // #include "ClientSocket.h" //ClientSocket 헤더 추가 #define WM_ACCEPT_SOCKET WM_USER+1 //ServerSocket에 있던 메시지 쓰레드로 이동 class CSocketThr..
Visual Studio 2012 이번엔 소켓으로 통신하는 채팅 클라이언트 프로그램을 만들어보자. 클라이언트 프로그램은 클라이언트 담당 소켓만 있으면 된다. 1. MFC 프로젝트 생성 새 프로젝트 - MFC 응용 프로그램 선택 대화상자 기반 선택 Windows 소켓 선택 2. Client 소켓 만들기 클래스 마법사에서 'MFC 클래스' 선택 CClientSocket 클래스 추가 - 기본클래스는 CSocket으로 지정 3. CClientSocket 클래스 구현 - 필요 함수SetWnd : Sendmessage 활용을 위한 메인의 핸들을 받는 함수OnReceive : 서버 통신 받을 시의 처리 함수OnClose : 소켓 해제 시의 처리 함수- 사용자 메시지WM_CLIENT_RECV : 서버에서 응답 온 메시..
Visual Studio 2012 소켓으로 통신하는 채팅 서버 프로그램을 만들어보자. 서버 프로그램에서 사용하는 소켓은 두 종류가 있다. - Listen 소켓 - Client 매칭 소켓 1. MFC 프로젝트 생성 새 프로젝트 - MFC 응용 프로그램 선택 대화상자 기반으로 선택한다 아래 창에선 다음과 같이 Windows 소켓에 체크표시하고 '마침' 누름 2. 소켓에 해당되는 클래스 만들기 클래스 마법사에서 'MFC 클래스' 클릭 클래스 추가 - 기본클래스는 CSocket으로 지정 Listen 소켓 클래스 이름(CServerSocket)Client 매칭 소켓 클래스 이름(CClientSocket) 3. Listen 소켓 클래스 구현 - Listen할 때 필요한 함수SetWnd : Sendmessage 활용..
Visual Studio 2012 C언어를 사용하면서 콘솔창으로 이것저것 넣어서 출력해가며 테스트 하던 버릇때문에 MFC에서도 콘솔창 활용해서 테스트 했었는데, 쓰레드를 이용할 시 문제가 생긴다고 함. 그래서 콘솔창 대신 디버그 창을 활용하기로 하자. 방법은 간단하다. OutputDebugString(_T("디버그창")); 예를 들어 다음과 같이 코드를 작성한다. void CDialog4::OnBnClickedBtnThreadstart() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. OutputDebugString(_T("디버그창")); } 디버그를 실행하여 확인해보자 참고로 디버그 창을 보려면 디버그 모드에서 하단의 출력창을 확인하면 된다.
- Total
- Today
- Yesterday
- 프로세스이름변경
- 모달리스 다이얼로그
- SendMessage
- ADO
- 전자신고변환
- c++
- ADODB
- 항공알파벳
- MFC Modeless
- Sticky Notes Loading
- MXCOMPONENT
- #자동업데이트
- 청년내일채움공제
- 스쿠트항공 환불받기
- 전자신고파일설명서
- 법정동코드
- 부가가치세
- MFC
- 스티커메모로드중
- Modeless
- 모달리스
- 세금계산서합계표양식
- sqlite3
- MFC ADO
- 청년내일채움공제 만기신청
- CMFCBUTTON
- 부가가치세전산매체
- MSSQL
- 소켓
- 해외송금확인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |