Visual Studio 2012 사용 이벤트를 사용해보자.이벤트는 Event Object를 의미하며, 이 오브젝트를 활용하여 WaitForSingleObject(), WaitForMultipleObjects() 등의 함수에 Signaled, Nonsignaled 상태를 리턴받아 처리하기위한 목적으로 사용한다. 스레드에서 사용된다. 1. 함수원형 살펴보기 (1) CreateEvent(): Event Object HANDLE을 생성한다. HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPTSTR lpName ); 파라미터:IpEventAttributes - 무시, NULL값 ..
Visual Studio 2012 사용 Performance Counter를 사용해 함수나 코드의 속도를 좀 더 정확히 측정해보자. GetTickCount()보다 정확하다. Performance Counter란?- OS나 어플리케이션, 서비스, 드라이버가 잘 실행되고 있는지를 나타내는 정보에 사용하는 카운터를 의미함 이 카운터로 Performance Counter Frequency라는 주파수에 따라 1초당 진행되는 틱 수 계산하여 속도를 측정하는 방식을 말한다. 우리가 사용할 함수는 QueryPerformanceFrequency()와 QueryPerformanceCounter()이다. 1. 함수 설명 1) QueryPerformanceFrequency 함수 원형 BOOL WINAPI QueryPerfor..
Visual Studio 2012 사용 비슷한 작동을 하는 컨트롤들을 하나의 함수로 묶어서 사용해보자.예) 계산기 숫자 버튼.. ON_CONTROL_RANGE를 몰랐다면 각각의 컨트롤에 버튼클릭 이벤트 함수를 만들어 사용해야 했지만,이제는 한개의 함수로 제어가 가능하다. 1~4의 숫자에 해당되는 버튼을 만들어 버튼 클릭시 해당 숫자가 EditBox에 표현되는 프로그램을 만들어보자. 1. 준비1) ON_CONTROL_RANGE 원형(MSDN) ON_CONTROL_RANGE( wNotifyCode , id1 , id2 , memberFxn ) wNotifyCode: 메시지 핸들러를 입력하면 된다.(BN_CLICKED 같은..)id1: 함수에 적용할 첫번째 컨트롤의 ID를 입력한다. id2: 함수에 적용할 마..
Visual Studio 2012 사용 기존 파일들을 Zip으로 압축하거나 압축해제 해보자.파일 정보들은 Ini파일을 활용하여 저장할 계획이다.참고 : http://zadd.tistory.com/52 새 MFC 윈폼 프로젝트를 만들어 ZipTest란 이름으로 프로젝트를 생성하였다. 1. Zip/Unzip 소스 및 헤더 추가 이 소스를 활용하여 압축과 해제를 진행할 것이다. 받은 소스를 프로젝트에 복사해 넣고 아래와 같이 cpp 안에 zip.h와 unzip.h 헤더를 포함시킨다. // ZipTestDlg.cpp : 구현 파일 // #include "unzip.h" #include "zip.h"여기서 사용할 함수들을 살펴보자. zip.h HZIP CreateZip(const TCHAR *fn, const c..
Visual Studio 2012 사용 INI 파일을 생성하여 값을 저장하거나 불러오자.간단하게 문자열을 기준으로 테스트한다. 1. 값 저장하기1) 함수 원형 BOOL WritePrivateProfileStringA( LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpString, LPCSTR lpFileName );lpAppName: INI 파일 섹션 이름lpKeyName: INI 파일 키 이름lpString: INI 파일 키 값lpFileName: INI 파일 이름 위의 방식으로 INI 파일 저장시 파일 내부는 아래와 같이 표현된다. [lpAppName] lpKeyName=lpString 2) 함수 사용 void CTestDlg::OnBnClickedBtnIni() { ..
Visual Studio 2012 대화상자와 트레이아이콘을 활용해보자.대화상자를 닫았을 때, 종료가 아닌 트레이아이콘으로 숨겨질 수 있게 하는 것이 목표 Code Project의 Danial Zilcsak의 도움을 받았다.참조https://www.codeproject.com/Articles/810/System-Tray-Icons-Minimize-Your-Application-to-the CDialog를 상속받은 CTrayDialog 클래스를 만들어서 구성하고,새 프로젝트의 기본클래스를 CTrayDialog로 변환하여 사용 할 것이다. 아래 소스를 다운 받는다. (참조의 홈페이지에서도 받을 수 있다) 압축을 풀고 새로 만든 프로젝트 안에 복사 후, 소스와 헤더를 추가 한다.(예제는 TrayTest란 프로젝..
Visual Studio 2012 로그를 파일로 따로 저장해보자.로그 저장하기의 심화버전이랄까.. 가변인수를 활용해서 로그 저장하기 참조http://zadd.tistory.com/49 기존에 작성했던 함수에 FILE 포인터 변수를 추가하여 파일으로 저장까지 해보자.기왕 저장하는거 보기 편하게 SYSTEMTIME을 활용하여 날짜도 적용한다. 1. 변수 및 함수 선언 header.h FILE* fP; //파일 포인터 추가 void AddLog(char* format, ...); bool OpenFile(); void CloseFile(); 파일 포인터 변수와 로그 저장 함수, 파일을 열고 닫을 함수를 준비한다. 2. 소스코드를 살펴보자 main.cpp void AddLog(char* format, ...) ..
Visual Studio 2012 가변인수를 알아보고 이를 활용해 로그를 저장해보자. 대표적인 가변인수를 다루는 함수인 printf.printf("%d %s", n1, "Hello"); 위의 함수 인수들 중 처음 "" 부분인 format을 제외하고는 뒤에 변수의 개수가 일정치 않다.이를 가변 인수라 하고, 위의 함수는 가변인수 함수라고 한다. 1. 가변인수 함수의 기본적 형태 자료형 함수이름(자료형 고정인수, ...){va_list va;va_start(va, 고정인수);va_arg(va,자료형);va_end(va);} 주의사항1) 고정인수는 무조건 하나 이상이어야 한다.2) 고정인수가 두개 이상일 경우, va_start에는 가변인수 바로 앞인 마지막 고정인수를 넣어야한다. 2. 가변인수 사용하기(로그 ..
Visual Studio 2012 사용 스레드(Thread)를 실행하기 전에 스레드에 전달하는 인자를 구조체를 활용하여 여러개의 변수로 만들어보자. 기존에 스레드 만드는 법은 아래를 참조. http://zadd.tistory.com/43 1. 구조체 선언 Header.hstruct STPARAM { CTestDlg *m_pDlg; inti; char ch; CString str; STPARAM(CTestDlg *pDlg, int num, char chTmp, CString strTmp) :m_pDlg(pDlg), i(num), ch(chTmp), str(strTmp){} }; //... STPARAM이란 구조체를 정의하고 그 안에 필요한 데이터들을 넣는다. STPARAM(......){} 구문은 처음 생..
Visual Studio 2012 사용 레지스트리를 활용하여 값을 저장 또는 불러오자.사용되는 모든 함수들은 CWinApp의 멤버함수로 정의되어 있다. 1. 레지스트리 키 1) 함수원형 void SetRegistryKey(LPCTSTR lpszRegistryKey); void SetRegistryKey(UINT nIDRegistryKey); HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL); SetRegistryKey를 통해 메인App의 키를 생성한다.lpszRegistryKey를 통해 생성할 키의 이름을 직접 적거나,nIDRegistryKey를 통해 키의 이름을 포함하는 문자열 리소스 ID를 활용할 수 있다. 생성한 키는 레지스트리의 HKEY_CU..
- Total
- Today
- Yesterday
- 부가가치세전산매체
- 스쿠트항공 환불받기
- ADODB
- 항공알파벳
- MSSQL
- 세금계산서합계표양식
- 법정동코드
- MXCOMPONENT
- 프로세스이름변경
- 전자신고파일설명서
- 청년내일채움공제 만기신청
- MFC
- sqlite3
- 청년내일채움공제
- Sticky Notes Loading
- 소켓
- CMFCBUTTON
- MFC ADO
- #자동업데이트
- 모달리스
- 전자신고변환
- MFC Modeless
- 스티커메모로드중
- c++
- SendMessage
- Modeless
- 모달리스 다이얼로그
- 부가가치세
- 해외송금확인
- ADO
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |