본문 바로가기

프로그래밍

[TDI_FW] 예제 분석 5월 18일 참고 자료 : 윈도우 디바이스 드라이버 - 이봉석(한빛미디어) 604쪽 - 서비스를 생성하는 목적으로 사용되는 Win32 API 함수 정리 OpenSCManager() : 서비스를 생성하거나 제거, 중지 등의 일을 하기 위해서 사전에 사용하는 서비스 컨트롤 관리자(Service Control Manager) 핸들을 얻는 함수다. OpenService() : 기존에 생성한 서비스 핸들을 얻는 함수다. 디바이스 드라이버 서비스를 생성하기 전에 이 함수를 먼저 사용하여 드라이버를 위한 서비스가 이미 생성되어 있느닞를 알아보는 용도로 사용한다. CreateService() : 서비스를 생성하는 목적으로 사용하는 함수다. StartService() : 서비스를 실행하는 목적으로 사용하는 함수다. NT 구형(Leg.. 더보기
경과 시간 계산 및 일정시간이상 일정 범위 안의 좌표에 있으면 클릭 경과 시간 계산은 크게 어렵지 않았다. void PlayGameForm::OnBnClickedButtonStart() { this->tStartTime = CTime::GetCurrentTime();// 현재 시간을 얻어온다. SetTimer(TIMER, 1000, NULL);// 1초마다 호출한다. this->cameraManager->Create(ComparePoint, this->cameraManager); this->cameraManager->threadState = true; } void PlayGameForm::OnTimer(UINT_PTR nIDEvent) { if (nIDEvent == CAMERA) { this->cameraManager->GetCamera().cvQueryFrame_ip.. 더보기
MFC에서 Client 중복 실행 방지하는 방법 BOOL CARPuzzleApp::InitInstance() { CheckOverlapRun (); return FALSE; } void CARPuzzleApp::CheckOverlapRun () { CWnd* pWnd = NULL; pWnd = CWnd::FindWindow(NULL, _T("사천성 ver 0.5 - Title")); if(pWnd) // 중복 실행이 되었을 경우 { // 중복 실행 중인 프로그램 화면에 표시 pWnd->ShowWindow(SW_SHOW); pWnd->SetForegroundWindow(); } else { // 레지스트리 등록 ::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wc); wc.lpszClassName = "사천성 v.. 더보기
C언어의 간단한 예제를 설계부터 코드화까지 (4/9) [문제 4/9] 1-100 까지의 홀수 합을 구하시오.(단, 3의 배수와 5의 배수 제외) 1. System chart 2. 수작업의 이해 숫자 1 2 3 4 5 6 7 … 홀수판단 ○ × ○ × ○ × ○ … 3의 배수가 아닌가 ○ ○ × ○ ○ × ○ … 5의 배수가 아닌가 ○ ○ ○ ○ × ○ ○ … 합 1 1 1 1 1 1 8 …3. 처리 과정 1. 100번 반복한다. 1.1 수를 센다. 1.2 홀수인지 판단한다. 1.2.1 3의 배수인지 판단한다. 1.2.2 5의 배수인지 판단한다. 1.2.3 합을 구한다. 2. 합을 출력한다. 3. 끝낸다.4. 자료명세서 number 입력받을 숫자 정수형 plus 양수 count 정수형 odd 음수 count 정수형 even 짝수 count 정수형 minus .. 더보기
C언어의 간단한 예제를 설계부터 코드화까지 (3/9) [문제 3/9] 100 장의 카드에 숫자가 입력될 때 양수의 개수와 음수의 개수를 구하고 양수 중에서 홀수와 짝수의 개수도 구하시오. 1. System chart main 함수에서 *100 이라고 표시되어있는, 자기 자신을 가리키는 화살표는, 숫자만큼 반복한다는 뜻입니다. 2. 수작업의 이해 입력 수 1 2 3 -1 -2 -3 … 양수 1 2 3 × × × … 홀수 1 × 2 × × × … 짝수 × 1 × × × × … 음수 × × × 1 2 3 …3. 처리 과정 1. 100번 반복한다. 1.1 숫자를 입력받는다. 1.2 0인지 판단한다. 1.2.1 양수, 음수를 판단한다. 1.2.1.1 양수, 음수를 세린다. 1.2.1.2 짝수, 홀수를 판단한다. 1.2.1.2.1 짝수, 홀수를 세린다. 2. 양수, .. 더보기
한글로 코딩하는 [한글 베이직 2.0] 동영상 농담삼아서 "순수 한글로만 코딩이 가능하다면 재미있지 않겠니" 라고 했더니 떡하니 DC 프로그래밍 갤러리에 링크가 올라왔다-_- 모르는 사람이 본다면 뭐 저런 고대의 프로그램이 있나 라고 할지도 모르겠지만, 조금이라도 프로그래밍에 대해서 아는 사람이 본다면 진짜 입이 떡 벌어질 것이다. 정말 대단하다. 어떻게 저런걸... 더보기
C언어의 간단한 예제를 설계부터 코드화까지 (2/9) [문제 2/9] 1부터 100,000 사이에 (100,000포함) 7의 배수가 몇 개 있는지 구하시오. 1. System chart C프로그래밍을 몇번 해보신 분이라면, 왜 단순 출력만 해주는 Display라는 함수를 따로 만들어야 되는지 의문을 가지실 겁니다. 그냥 main 함수에서 출력해주는게 쉽지 않냐고 말씀하실수도 있습니다. 하지만, 지금부터 연산부분과 출력부분(Form부분)을 분리해서 코딩하는 습관을 들여놓으시면, 나중에 편하실겁니다. 여러가지 장점이 있지만, 제가 느낀 가장 큰 장점은 다른언어로 옮길때 엄청난 편의가 있다는 점입니다. 2. 수작업의 이해 숫자 1 2 3 4 5 6 7 ... 7의배수 X X X X X X ○ ... count 0 0 0 0 0 0 1 ... 3. 처리 과정 1... 더보기
CPP에서 MD5 암호화 하기 이 소스는 http://bbangwon.tistory.com/16 에서 제공된것을 일부 수정한것임을 명시합니다. 소스제공 : 빵원군 1. 소스 // MD5Test.cpp #ifdef HAVE_CONFIG_H #include #endif #include "md5.h" #include #include #include using namespace std; string md5(const string strMd5) { md5_state_t state; md5_byte_t digest[16]; char hex_output[16*2 + 1]; int di; md5_init(&state); md5_append(&state, (const md5_byte_t *)strMd5.c_str(), strMd5.length());.. 더보기
입문자를 위한 책 추천 장점 : 저자의 열정이 느껴지는 내용과 동영상 강의. 초보자를 위한 친절하고 쉬운 설명. 단점 : 쉽게 쉽게 설명하다 보니, 잘 하시는 분들이 볼땐 사알짝 개념적으로 엇난 부분도 있다고 함. (나는 잘 모르겠음) 장점 : 처음 자료구조 공부를 시작하면 개념잡는데 시간이 많이 걸리기 마련인데, 그림과 짧은 예제로 잘 설명되어 있음. 단점 : 글쎄...다른 책은 본적이 없어서... 장점 : C프로그래밍과 마찬가지로 쉽게 설명되어있음. 강의 내용도 충실함. 단점 : 가끔 별 의미가 없다고 생각되는 예제가 있음. 장점 : API에 대한 설명을, Visual Studio 버전에 따라 나눠 설명해놨음. 단점 : 비싼 가격. MSDN을 번역해 놓은랑 다를바 없어서, MSDN 사용이 익숙해지면 거의 안봄. 제가 여태 .. 더보기
프로그래밍을 시작하시려는 분들에게 언어가 중요한게 아닙니다. 너 C 얼만큼 하냐, C++할줄 아냐, JAVA는 해봤냐, 요즘은 C#이 대세라더라 모두 중요하지 않습니다. 설계할줄 알고 내 생각을 구조화 시켜서 표현할줄 아는 능력이 중요한겁니다. 언어는 그러기 위한 도구일 뿐입니다. 라고 이야기 하는 저도 사실, 도구를 잘 다루고 싶은 욕망이 크긴 합니다. 잘 다루는 분들을 보면 부럽기도 하구요 ^-^ 더보기