카테고리 보관물: C, C++

timeGetTime 사용 방법 예제 (2006년)

Visual Studio 2003 한글판 기준으로 작성된 예제 입니다.

예제 내용은 Console로 작성하였으며, 간단히 시간을 카운트하는 기능을 합니다.

timeGetTime 함수를 이해하는데 도움이 될 것이라 생각됩니다.

timeGetTime 함수는 실무에서도 저는 꽤 많이 사용합니다.

다만 여러 플렛폼에서 지원을 하는지 안하는지 알 수가 없고,

window 버전에 따라 차이가 있기 때문에, 그에 대한 예외처리가 필요합니다.

만약 타이머 처리가 굉장히 예민한 부분이라면 이 함수를 사용하는데 굉장한 신경을 써야 하며

개인적으로는 다른 것을 사용하는게 좋지 않을까 싶습니다.

저 같은 경우 이번에 기간제 캐시 아이템이 들어가면서, 클라이언트에서 각 캐시 아이템의

남은 유효기간을 표시하기 할 때 이 함수를 살짝 사용해 주었습니다 : )

파일 다운로드 : 1107203788.zip

네이버 데스크톱 위젯 만들기 – 2

사용자 삽입 이미지
안녕하세요. 네이버 데스크톱 위젯 만들기 2번째 편을 적어보고자 합니다.

부족한 내용이 있거나 잘못된 내용이 있다면 지적해 주시면 감사하겠습니다.

위젯개발도구를 다운받게 되면 ‘OpenApiWidget.zip’ 파일을 보실 수 있으실 것입니다.

사용자 삽입 이미지압축을 풀게 되면 4개의 파일을 보실 수 있으실 것입니다.

* NaverWidgetMaker1007.exe
-> 네이버 데스크톱 위젯 메이커 입니다.
   자세한 내용은 뒤에 설명하도록 하겠습니다.

* Calculate.swf
-> 아마 플레쉬 위젯 관련 예제라고 생각됩니다.

* OpenAPIWidgetGuide.zip
-> 웹에서 볼 수 있는 도움말을 html 오프라인 파일로 모아놓은 압축 파일입니다.
   이 내용과 함께 같이 보시면 매우 좋습니다. 이 글을 보시기 전에 봐두시길
   바랍니다.

* SampleWidget.zip
-> 우리가 봐야하고 작업해야 할 파일들이 있습니다. 위젯과 관련한 프로그래밍
  소스들이 담겨져 있습니다. 이 부분에 대해서 곧 설명을 할 예정입니다.


우리가 여기서 봐야할 내용은 당연히 ‘SampleWidget’ 에 대해서 입니다. 압축을 풀도록

합시다. 그렇게 되면 또 2개의 폴더가 나올 것입니다.

사용자 삽입 이미지

* SimpleMP3_Player
-> MP3 플레이어 위젯 샘플

* WiseSaying
-> 오늘의 명언 위젯 샘플


솔직히 저는 WiseSaying 위젯은 실행시켜보지 않았습니다. 컴파일이 정상적으로 되는지

코드가 어떻게 되어 있는지, 리소스를 어떤 것을 사용하는지 보고 오늘의 명언 위젯이라고

판단 할 수 있었고 잘 될 것이라 생각하였습니다. MP3 플레이어 위젯보다 WiseSaying

위젯이 더 간단한 형태의 코드로 되어있기 때문에 초보자 분들은 WiseSaying 위젯을

우선 보고 넘어가는게 좋을 것 같습니다. 저 같은 경우 SimpleMP3_Player 위젯을 먼저보고

뒤에 WiseSaying 위젯을 보았습니다. 자유롭게 일단 보시면 될 것 같습니다.

사용자 삽입 이미지

* Lib
-> 위젯과 MP3 플레이어를 위한 라이브러리 파일이 들어있습니다.

* SimpleMP3_Player
-> 이 폴더의 소스의 경우 저도 어떤 역활을 하는지 잘 모르겠습니다. 일단 컴파일이
    정상적으로 되지 않는 소스기 때문에 보지 않았습니다. 중요하지 않을 듯 싶습니다.

* SimpleMP3_PlayerMFC
-> 지금 봐야할 MFC로 되어있는 MP3 플레이어 위젯 입니다.

* player.png
-> 네이버 데스크탑에 등록되는 아이콘 이미지 파일입니다.
   앞에서 간단하게 봤던 네이버 위젯 메이커로 위젯을 만들시에 위젯의 아이콘 이미지를
  등록하게 되는데 그 때 사용 될 파일입니다.


여기서는 SimpleMP3_Player 폴더 안에 있는 SimpleMP3_PlayerMFC 폴더를 봐주시길

바랍니다. 그리고 ‘SimpleMP3_PlayerMFC.sln’ 파일을 Visual Studio .net 2003 으로

실행시켜 주시면 됩니다. 컴파일을 해보시고 컴파일이 정상적으로 되는지 확인해보세요.

저의 경우엔 컴파일시에 경고가 1개 있고 오류는 나지 않았습니다. 이 상태에서 소스를

실행하게 되면 실행되는 듯 하다가 오류가 나게 됩니다. 그렇기 때문에 그냥 정상적인

방법으로는 소스를 컴파일 하여 어떤 내용인지 확인해 볼 수가 없을 것입니다.

이 소스는 네이버 데스크탑에서 구동되는 위젯이기 때문에 몇가지를 추가로 한 다음에

실행시킬 수 있습니다.

사용자 삽입 이미지
1. 네이버 데스크톱을 설치하고 로그인을 해야합니다.

위의 이미지와 같이 네이버 데스크톱을 설치하고 실행하여 로그인을 할 수 있습니다.

하지만 아마도 로그인은 안해도 위젯을 실행 할 수 있을 것 같습니다. 네이버 아이디는

다 있으실 것이기 때문에 로그인을 해두는게 좋다고 생각합니다.

[네이버 데스크톱 다운 받기]

네이버 데스크톱에 대해서 잘 모르시는 분이라면 설치하시고 로그인 하셔서 일단 이것 저것

기능을 사용해 보시고, 위젯도 여러 가지 설치해보셔서 사용법을 익히실 필요가 있겠습니다.

사용자 삽입 이미지2. 위젯 키 발급 받기

[이곳] 에서 위젯 키를 발급 받을 수 있습니다.

‘위젯을 제작하여 사용하려면 KEY와 위젯 아이디를 발급 받아야 합니다’ 라고 적혀 있습니다.

키를 발급 받게 되면 [마이 위젯] 에서 발급 받은 키와 아이디를 확인하실 수 있습니다.

키의 경우에는 여러 문자와 숫자의 조합으로 되어있을 것이고, 위젯아이디의 경우에

숫자로만 이루어져 있을 것입니다. 키와 위젯아이디가 확인이 되었다면 다음으로 진행을

하면 됩니다.

사용자 삽입 이미지
3. 발급 받은 키와 위젯 아이디로 코드를 수정하기

‘SimpleMP3_PlayerMFCDlg.cpp’ 파일의 149번 줄을 봐주시길 바랍니다.

//위젯의 프로세스 ID, WidgetID, 할당받은 WidgetKey를 전달

라는 주석을 보실 수 있습니다. 이곳에 자신이 받은 키와 아이디를 넣어야 합니다.

m_DesktopWidget.SetWidgetInfo(GetCurrentProcessId(), 1100, “”);

이런식으로 처음에 되어 있을 것입니다. 1100 이라고 되어있는 곳에 위젯아이디를,

“” 되어 있는 곳 안에 키를 넣어주시면 됩니다. 그리고 컴파일 후에 컴파일이 잘 되면 됩니다.

m_DesktopWidget.SetWidgetInfo(GetCurrentProcessId(), ID, “KEY”);

입니다.

사용자 삽입 이미지
4. 네이버 위젯 메이커로 .nd 파일 만들기

이 부분까지 한 후에 실행을 하게 되면 해당 메세지를 보실 수 있으실 것입니다.

이 메세지 때문에 저 또한 많이 헤매었습니다. 시간이 많이 소모되었는데요. 이 설명을

잘 보시면 다른 분들은 금방 해결 하실 수 있으실 것입니다. 우선 위에서 설명 되어 있는

.ndw 와 .nd 에 대해서 알아봐야 할 것입니다.

* .ndw 파일에 대해서
-> ndw 확장자 파일은 어떠한 과정을 거쳐서 나오는 확장자가 아닙니다.
   매우 단순하게도 컴파일되서 나온 exe 파일의 확장자를 임의로 .ndw 로 바꿔주셔야
  합니다. 확장자가 보이지 않는다면 도구->옵션->보기->알려진 파일 형식의 파일
   확장자명 숨기기 부분에 체크표시 되어있는 것을 풀어주시면 됩니다.
  지금 설명하고 있는 것에서는 SimpleMP3_PlayerMFC.exe 파일 이름을 .exe 대신에
   .ndw 로 바꿔서 SimpleMP3_PlayerMFC.ndw 파일을 준비해주시면 됩니다.
  후에 이 파일은 밑에서 설명드릴 위젯 메이커에서 쓰이게 될 것입니다.

* .nd 파일에 대해서
-> .nd 파일은 네이버 데스크톱 위젯 메이커를 통해서 나온 결과물 입니다. 이 파일을
  네이버 데스크톱에 등록하여 위젯이 실행되게 되는 것입니다. .exe 파일과 같이
  더블클릭해서 실행 할 수 있는 파일은 아닙니다.


‘SimpleMP3_PlayerMFC.exe’ 파일의 사본을 만들어 ‘SimpleMP3_PlayerMFC.ndw’ 로

이름을 바꿔서 준비해 주세요. 그리고 앞에서 살펴본 ‘NaverWidgetMaker1007.exe’ 파일을

실행시켜서 ‘네이버 데스크톱 위젯 메이커’를 실행시켜 주시길 바랍니다.

사용자 삽입 이미지
왼쪽 그림과 같이 네이버 아이디로 로그인을 해야합니다. 그렇게 되면 오른쪽 화면과 같이

키와 아이디를 넣는 란이 있습니다. 위에서 발급받은 위젯 키와 아이디를 넣어주시면 됩니다.

Step3 에서 위젯 종류를 선택하는 것이 있는데, 위젯은 일반 위젯과 플레쉬 위젯으로

나뉩니다. 우리는 일반 위젯으로 선택하고 다음 버튼을 누르면 됩니다.

사용자 삽입 이미지
Step4는 조금 복잡합니다. 일단 본인이 원하는 위젯명을 적어줍니다. 그 밑에 위젯 파일을

등록하는 란이 있습니다. 파일 추가를 눌러서 위에서 만들었던 .ndw 파일과 프로그램 실행에

필요한 모든 파일을 추가해 줘야합니다. mp3 플레이어가 사용하는 리소스 파일은

SimpleMP3_PlayerMFC/res 폴더에 있습니다. 이 폴더를 추가해도 되고 추가하지 않아도

됩니다. 아마 그 이유는 .sin 솔루션 안에 프로젝트 안에 이미 리소스가 추가 되어 있기

떄문에 실행파일 안에 그 파일들이 포함되어 있기 때문이라고 생각을 합니다.

사용자 삽입 이미지
누락없이 다 입력 했다면 마지막으로 이러한 화면을 보실 수 있을 것입니다.

‘2. 위젯 테스트하기’ 버튼을 눌러서 위젯이 정상적으로 작동되는지 확인해주시길 바랍니다.

그래야 네이버 데스크톱에도 등록이 되기 때문에 꼭 눌러주시길 바랍니다. 정상적으로

되는 것을 확인하셨으면 네이버 데스크톱 위젯 만들기를 닫아주시면 됩니다.

사용자 삽입 이미지
이러한 위젯이 실행이 될 것입니다. 일단 닫아보시고 Visual Studio 에 띄워져 있는

소스로 돌아와서 실행을 해보세요. 실행을 하였을 때 위와 같은 위젯이 떠야 합니다.

잘 뜨는 것을 확인 하셨다면 이러한 걱정을 하실 수도 있습니다. ‘매번 컴파일 할 때마다

위젯 메이커로 만들어서 테스트를 해봐야 하는 건가..’ 라고요. 하지만 그럴 필요는 전혀

없습니다. 해당 내용과 같이 MP3 플레이어라면 꼭 MP3 플레이어의 .nd 파일이

네이버 데스크톱이 등록되어 있지 않아도, 같은 위젯아이디와 키를 가지고 있는 .nd 파일이

등록되어 있다면 실행이 가능한 것으로 보여집니다. 즉 이 말은 네이버 데스크톱에서는

등록되어 있는 위젯 아이디와 키를 검사할 뿐이라는 것입니다. 실제 소스에서 실행 할 떄는

그쪽에 있는 nd 파일을 실행하는 것이 아니라 우리가 컴파일한 exe 파일로 실행을

하는 것이기 때문에 한번 등록해 놓으면 우리가 컴파일 하는 내용대로 실행이 될 것입니다.

이상으로 네이버 데스크톱 위젯 만들기 2번째 글을 마치고자 합니다.

다음 글에서는 실제 소스를 보고 MP3 PLAYER 를 스탑워치 기능이 있는 타이머로

수정을 해보면서 위젯 만드는 방법을 알아보고자 합니다.

이렇게 글을 봐주셔서 대단히 감사합니다.

————————————————————————–

네이버 데스크톱이 이번에 업데이트가 되면서 문제점이 생겼습니다.

그것은 바로 VC 상에서 바로 실행을 할 수가 없는 문제입니다. 해당 문의사항에 대해서

네이버측에서 답변이 온 것은 이러합니다.


이번에 데스크톱이 정식 버전으로 업데이트 되면서 변경된 사항이 있습니다.


데스크톱은 데스크톱에서 실행한 위젯이 아니면 연동이 되지 않도록 변경되어

VC IDE상에서 위젯을 실행하면 .nd와 .ndw의 ID가 다르다는 알럿이 뜨게 됩니다.

위와 같이 변동된 이유는 다음과 같습니다.

– 인증되지 않은 제 3의 어플레케이션이 데스크톱과 연동되는 것을 막기 위함
  => 보안의 목적


– 위젯 ID를 잘못 사용하는 경우에 오동작을 미연에 방지하기 위함


이러한 두가지 이유로 어쩔 수 없이 데스크톱을 메인 모듈에서 직접 실행한 위젯만을

연동할 수 있도록 조치하게 되었습니다.

개발 시점에 연동이 되지 않아 디버깅이 어려운 부분에 대해서는 논의를 하여

더욱 편리하게 서비스를 사용하실 수 있도록 하겠습니다.


그렇기 때문에 일단 당장은 위와 같은 방법으로 실행 할 수 없을 것 같습니다.

새로운 소식이 있다면 또 업데이트 하도록 하겠습니다.

————————————————————————–

m_DesktopWidget.SetWidgetInfo() 함수를 주석처리 하면 일단 실행을 할 수 있습니다.

참고하시길 바랍니다.

숫자맞추기 게임

숫자맞추기게임


규칙
사용자가 랜덤하게 양의 정수값을 입력
컴퓨터가 임의로 발생시킨 양의 정수를 알아 맞추는 게임
컴퓨터가 발생시키는양의 정수범위는  1 ? 200 사이의 정수
한 게임에알아 맞출 수 있는 횟수는 7번으로 제한
7번을 넘기도록 맞추지 못하면 게임에서 지는 것으로 코딩
게임 횟수는 사용자가 그만둘 때까지이며
사용자의  계속여부는 Y/ N를 입력받아 Y(y)이면 게임을 계속 진행, , N(n)이면 게임종료
다음 게임시 컴퓨터가 발생시키는 랜덤값은 바뀌어야 한다.

사용자 삽입 이미지

직접 작성한 코드입니다. 소스를 봐주시길 바랍니다.

개발 환경 : Visual Studio .NET 2003. C/C++, WIN32 Console

1398385331.zip