나의 즐겨찾기 | 블로그홈 | 바로가기 바로가기 | 로그인
@nashorn74 : 저성장, 고유가, 저금리, 고령화인 시대를 살게 되다...
블로그  |  사진갤러리  |  동영상갤러리 방명록  |   즐겨찾기 추가
나숑 (nashorn74)
프로필     
 인기도 :
 이 블로그 점수주기
전체 글보기(339)
Dr.N's JOB Consulting Office
나의 강의록 새 글이 있습니다.
나에 관한 글들
내가 쓴 글들
나의 골프 입문기
나의 와인 이야기
내가 만든 프로그램들
오늘 전체
방문자 421 294708
구독자 0 19
댓글 0 203
참조글 0 99
HanRSS 로 구독하기Fish 로 구독하기
2009 11월
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
최근 댓글 전체
chooil7님 말씀에..
복잡한 얘기는 차치하고..
제가 직접 피드백을 한..
나숑님, 안녕하세요. ..
아, 그렇군요~ 나름 ..
최근 참조글 전체
Xanax.
Valium stati..
Ambien.
what are the..
buy cialis i..
다녀간 블로거 더보기
- UCC조아
- mama2737@Y
- 마리짱
- 후천사랑
- 산타나
14,920
개설일 : 2004/04/22
 

[옴니아2 개발] Windows Mobile에서 SQLite 사용하기

2009.11.25 13:20 | 나의 강의록 | 나숑

http://kr.blog.yahoo.com/nashorn74/1226324 주소복사

iPhone이나 Android는 기본적으로 SQLite를 지원하기 때문에, 파일 DB를 이용해야할 경우 유용하게 사용할 수 있다. Windows Mobile에서 MDB를 사용할 수도 있을 것 같지만, 두가지를 다 써본 입장에서 기능면이나 사용면에서 SQLite가 월등히 좋기 때문에 Windows Mobile에서 SQLite를 사용하는 방법에 대해 알아보도록 하겠다.

본 내용은 다음 사이트의 내용을 참고해서 작성하였음을 밝혀둔다.
http://www.joinc.co.kr/modules/moniwiki/wiki.php/SQLite%20Windows

1. SQLite 소스 및 바이너리, DLL 다운 받기

www.sqlite.org 사이트에 접속하여 "DOWNLOAD" 페이지를 클릭한다.

원본 크기의 사진을 보려면 클릭하세요

현재 가장 최신 버전인 3.6.20 버전인데, 다운로드 페이지에서 소스 파일인 sqlite-source-3.6.20.zip 파일과, 실행 파일 및 DLL 파일인 sqlite-3.6.20.zip 파일, sqlitedll-3.6.20.zip 파일 등 3개의 파일을 다운받는다.

원본 크기의 사진을 보려면 클릭하세요

다운받은 파일들을 임의의 폴더에 압축을 풀어서 소스를 컴파일 할 준비를 해놓는다.


2. SQLite Library 파일 컴파일하기

2.1. 프로젝트 생성 및 소스 등록

Visual Studio 2008를 실행시킨 다음, 메뉴에서 {파일-새로 만들기-프로젝트}를 선택한다. "새 프로젝트" 창이 뜨면, 프로젝트 형식은 {Visual C++-스마트 장치}를 클릭하고, "Win32 스마트 장치 프로젝트"를 선택한 다음 프로젝트 이름을 입력하고 "확인" 버튼을 누른다. (프로젝트 명은 sqlite로 하면 된다)

원본 크기의 사진을 보려면 클릭하세요

아래 그림과 같이 응용 프로그램 종류는 "정적 라이브러리"를 선택하고, 추가 옵션의 "미리 컴파일된 헤더"는 끄고 "마침" 버튼을 누른다.

원본 크기의 사진을 보려면 클릭하세요

프로젝트가 생성되면, 소스 파일에는 *.c 파일을 등록하고 헤더 파일에는 *.h 파일을 등록한다. 그리고 sqldll-3.6.20.zip 파일을 풀어서 생기는 "sqlite3.def" 파일도 프로젝트에 등록을 해준다.

2.2. shell.c 파일 수정

shell.c 파일을 열고 다음 부분처럼 수정한다. (붉은색 부분은 주석처리, 파란색 부분은 새로 추가된 것임) 참고로, 그냥 Windows용 라이브러리로 컴파일 할 때에는 두번째 붉은 부분은 주석 처리하지 않아도 된다.

#if defined(_WIN32) || defined(WIN32)
//# include <io.h>
#define FILENAME_MAX 1024
#define isatty(h) _isatty(h)
#define access(f,m) _access((f),(m))
#else
/* Make sure isatty() has a prototype.
*/
extern int isatty();
#endif

#if defined(_WIN32_WCE)
/* Windows CE (arm-wince-mingw32ce-gcc) does not provide isatty()
 * thus we always assume that we have a console. That can be
 * overridden with the -batch command line option.
 */
//#define isatty(x) 1
#endif


2.3. 컴파일 및 링크 문제 생기는 소스 파일 제거

소스 파일로 등록된 파일 중에서 컴파일 시 에러가 나는 "tclsqlite.c" 파일과 링크 시 에러가 나는 "fts3.c", "fts3_tokenizer.c" 파일을 프로젝트에서 제거한다.



이 모든 준비가 완료 되었다면, Release 모드로 프로젝트를 Build한다. 빌드가 무사히 끝나면 Release 폴더에 "sqlite.lib" 파일이 생성되어 있는 것을 확인할 수 있을 것이다.


3. SQLite Manager 설치하기

MDB 파일은 Access라는 데이터베이스 매니저가 있다면, SQLite는 SQLite Manager라는 유용한 어플리케이션이 있다. SQLite Manager는 FireFox의 부가 기능으로 제공되기 때문에, 어떤 플랫폼에서도 사용할 수 있다는 장점을 가지고 있다. 실제로 필자는 iPhone용 어플리케이션 개발을 위해 SQLite Manager를 사용하기 시작했는데, Windows Mobile용도 이것을 이용해서 개발하고 있다.

원본 크기의 사진을 보려면 클릭하세요


나의 자동차 이야기 - 양동이와 손걸레만으로 알뜰 세차하기

2009.11.22 21:56 | 내가 쓴 글들 | 나숑

http://kr.blog.yahoo.com/nashorn74/1226323 주소복사

주말이 되면 꼭 하는 일 중에 하나가 주중에 지저분해진 차를 직접 세차하는 것이다. 관리가 어려운 검은색 차량을 처음 몰고다니다 보니 처음에는 꽤나 적응이 어려웠었다. 게다가 아무것도 몰랐을 때는 셀프세차의 브러쉬를 사용하거나 아무 손걸레나 사용하다보니 새차인데도 잔기스가 많아졌기에, 비싼 돈 들여 차체에 코딩과 광택을 한번 낸 이후로는 손세차를 이용하거나 직접 세차를 하는 편이다. 손세차의 경우 괜찮은 곳을 찾기가 쉽지 않고 찾았다하더라도 일부러 찾아가서 손세차를 맡기는 것도 꽤나 번거로운 일이라, 특별한 일이 없는 한 주말에 직접 세차를 하고 있다.

* 준비물 : 양동이 (여름에는 차가운 물을, 겨울에는 따듯한 물을 반쯤 채운다), 극세사 손걸레 3장, 고광택 왁스, 왁스용 극세사 손걸레

아래는 차를 닦기 전의 모습이다. 일주일 전에 세차를 해서 여기저기 더러워져 있으나 이 사진으로는 별로 안더러워 보인다. -_-;;; 비라도 맞으면 검은색 차량은 빗자국에 먼지 자국이 금방 눈에 띄어 지저분해지는 단점이 있다.

원본 크기의 사진을 보려면 클릭하세요
원본 크기의 사진을 보려면 클릭하세요

1단계. 물에 흠뻑 젖은 극세사 손걸레로 외부 닦아 내기

와이퍼를 들어올리고 외부 전체를 흠쩍 젖은 물걸레로 닦는다. 차량 외부에 더러운 것들을 물로 닦아내는 것이다. 이렇게 하면 아래 사진처럼 차량 전체에 물자국(!?)이 남지만 신경쓰지 않아도 된다. 차체를 다 닦아 내었으면 그 걸레를 이용하여 마무리로 와이퍼 날 부분과 휠도 한번 닦아 준다. 주의 할 점은 양동이 물은 끝까지 사용해야하기 때문에, 절대로 차체를 닦던 걸레를 담그면 안된다는 것이다. 닦던 도중에 물을 흠뻑 뭍히려면 걸레에 양동이 물을 손으로 뿌려주도록 한다.

원본 크기의 사진을 보려면 클릭하세요
원본 크기의 사진을 보려면 클릭하세요

2단계. 물기를 짜낸 극세사 손걸레로 외부 닦아 내기

양동이 물에 두번째 손걸레를 담갔다가 힘주어서 짜낸다. (적당히 짜서 약간 물기가 남도록 하는 것이 포인트) 그렇게 물기를 적당히 짜낸 손걸레로 물기가 남아 있는 차체를 꼼꼼히 닦아 내도록 한다. 이렇게 하면 1단계에서 지저분하게 남아있던 물자국까지 깨끗하게 닦아낼 수 있다. 차문과 트렁크도 열고 미처 보이지 않는 접촉면도 깨끗하게 닦아 준다. 닦다가 물기가 많아지면 손걸레를 적당히 짠 다음 다시 닦도록 한다. (역시 닦던 걸레를 직접 양동이 물에 담그지 말것) 이렇게까지 하고나면 아래 사진 처럼 어느 정도 깨끗해진다.

원본 크기의 사진을 보려면 클릭하세요
원본 크기의 사진을 보려면 클릭하세요

3단계. 물기를 꽉 짠 극세사 손걸레로 실내를 닦은 다음 외부를 한번 더 닦기

본인의 경우, 세번째 손걸레는 크기는 작아도 아주 부드러운 극세사 손걸레를 사용한다. 그래서 양동이 물에 한번 담갔다가 물기를 확실하게 짜낸 다음, 핸들부터 시작해서 실내 구석구석을 깨끗히 닦는다. 애들을 태우고 다니면 여기저기 여러가지 자국이 남는데 그것들을 닦아내고 먼지가 쌓여있거나 자주 사용하는 버튼의 손자국 등을 닦아준다. 실내를 모두 닦은 후에는 차체 외부를 한번더 세번째 손걸레로 꼼꼼히 닦아 준다. (물자국이나 미처 닦지 않은 곳이 있는지 확인하면서) 이렇게 세번에 걸쳐 차체를 닦으면 충분히 깨끗해져 있을 것이다.


원본 크기의 사진을 보려면 클릭하세요

4단계. 고광택 왁스로 차체를 닦아 주기

이제 고광택 왁스를 차체 부위를 적당한 단위로 나누에 3~4회 뿌려주고 왁스용 극세사 손걸레로 충분히 닦아 준다. (본네트, 휀다, 문, 트렁크 등의 단위로) 왁스로 차체를 모두 닦고 난 다음에는 양동이에 고스란히 남아 있는 맑은 물을 4개의 휠에 골고루 뿌려주고 양동이를 비운다. 빈 양동이에는 3개의 더러워진 손걸레를 집어넣으면 된다.

원본 크기의 사진을 보려면 클릭하세요
원본 크기의 사진을 보려면 클릭하세요

4단계로 차를 닦고 나면 약 1시간 정도의 시간이 소요된다. 대형차라서 차체 면적이 더 크기 때문이기는 하지만, 쌀쌀한 날씨에도 이렇게 차를 닦고 나면 꽤나 운동이 되어서 추위를 못느끼게 된다. (여름에는 땀을 뻘뻘 흘려가며 닦게 되는 단점은 있다) 왁스로 광을 내어 번쩍번쩍 빛이 나는 차를 보고 있으면 기분도 상쾌해져서 스트레스 해소용으로도 딱 좋은 소일거리이다.

한가지 주의할 점은... 반드시 사전에 충분히(!!) 일기 예보를 확인하고 세차에 돌입해야 한다는 것이다. 오늘도 열심히 닦고 광을 냈지만, 늘 그랬듯이 세차하는 날에는 비가 오고야 말았다. -_-;;;;

나의 답사기 - 양수리 봉주르 (2009년 11월)

2009.11.20 09:21 | 내가 쓴 글들 | 나숑

http://kr.blog.yahoo.com/nashorn74/1226322 주소복사

스트레스 해소를 위해 올림픽 대로를 쭉 달려서 도착한 "봉주르". 말로만 들었을 때보다는 컨츄리함에 다소 의외였고, 대낮인대도 주차된 차들이 엄청 많아서 당황스럽기까지 했다.

원본 크기의 사진을 보려면 클릭하세요

이곳의 장점이라는 한강, 팔당댐 그리고 철길...

원본 크기의 사진을 보려면 클릭하세요

저녁에 오면 더 멋지다고하는데, 낮에는 전혀 어떠한 정취도 느끼지 못하겠다. 그냥 컨츄리스러운 입구일뿐.

원본 크기의 사진을 보려면 클릭하세요
원본 크기의 사진을 보려면 클릭하세요

그나마 마음에 든 것은 따뜻한 모닥불 앞에 앉아서 아메리카노 한잔을 즐길 수 있었다는 점 정도일 것이다.

원본 크기의 사진을 보려면 클릭하세요

개인적으로 이렇게 사람이 많이 들락거리는 장소는 좋아하지도 않을 뿐더러, 주문 받을 때 "선불" 외치며 손벌리고 기다리는 종업원도 체질적으로 싫어한다. 손님 많아서 북적거리니까 내가 이해해줘야 한다고? 쯧..

원본 크기의 사진을 보려면 클릭하세요

연인들이라면 어디를 가던지 당연히 낭만적이고 멋진 장소가 될 것이다. 그래서 과대 포장 된 것이 아닌지...

원본 크기의 사진을 보려면 클릭하세요

이런 번잡하고 커피 맛도 별로인 곳보다는 한적하면서 아늑한 분위기와 좋은 음악에 취해 휴식을 취할 수 있는 카페를 찾아봐야 겠다.

[옴니아2 개발] Accelerometer 사용 문제

2009.11.18 15:56 | 나의 강의록 | 나숑

http://kr.blog.yahoo.com/nashorn74/1226321 주소복사

SMI SDK 2.0에서 제공하는 Accelerometer API를 사용하려고 테스트 코드를 작성해서 옴니아2에서 테스트 해보았다. 그랬더니 "SMI_ERROR_DEVICE_NOT_FOUND"라는 에러가 리턴이 되는 것이 아닌가. 혹시나 해서 Samsung Mobile Innovator 사이트에 가서 검색을 해보니, 현재 공개된 SDK의 Accelerometer API는 International Version OMNIA2 (GT-I8000)에서만 지원이 된다고 한다.

그래서 부랴부랴 예전에 옴니아 공모전 때 삼성전자에서 제공해준 옴니아(M490)용 Accelerometer 사용 방법을 참고해서 테스트를 해보았다. 에러는 나지 않았지만 첨부된 샘플을 돌려 봐도 넘어 오는 값은 X, Y, Z 모두 0이었다. 이래서는 도무지 사용할 수 없는 상황이다.

도대체 이게 무슨 황당한 시츄에이션이냔 말이다.

[옴니아2 개발] 투명값이 있는 PNG 파일 출력하기

2009.11.17 13:51 | 나의 강의록 | 나숑

http://kr.blog.yahoo.com/nashorn74/1226320 주소복사

iPhone이나 Android용 어플리케이션 개발 시에 투명값이 들어가 있는 PNG 파일을 사용하는 것은 무척 간단하다. 그러나 아쉽게도 Windows Mobile에서 투명값이 들어가 있는 PNG 파일의 처리는 절대로 간단하지 않다. Windows Mobile 6.5에서는 투명값이 포함된 PNG 파일을 화면에 출력하는 방법이 두 가지가 제공된다. 첫번째는 DirectDraw를 이용하여 AlphaBlt를 사용하거나, 두번째는 ImagingFactory를 이용하여 출력하는 것이다. 여기서는 ImagingFactory를 이용한 방법에 대해서 설명하도록 하겠다.



먼저 헤더 파일을 include 시킨다. 보통 imaging.h와 initguid.h 파일만 include 하면 되는 것 같은데, CLSID_ImagingFactory나 IID_IImagingFactory가 링크 시 에러가 날 경우에는 imgguids.h 파일을 추가해주면 된다.

#include <imaging.h>
#include <initguid.h>
#include <imgguids.h>


그 다음에는 ImagingFactory 인스탄스를 생성하고 이미지 파일을 읽어서 image에 저장한다.

CoInitializeEx(NULL, COINIT_MULTITHREADED);

IImagingFactory *imagingFactory;
IImage *image;
if (SUCCEEDED(CoCreateInstance (
        CLSID_ImagingFactory, NULL, CLSCTX_INPROC_SERVER, 
        IID_IImagingFactory, (void **)&imagingFactory)))
{
  if (SUCCEEDED(imagingFactory->
                    CreateImageFromFile(FILE_PATH
, &image)))
  {
    :
  }
}


이렇게 해서 image에 저장된 이미지를 화면에 출력하는 부분은 다음과 같다.

ImageInfo imageInfo;
image->GetImageInfo(&imageInfo);

RECT rc = {0, 0, imageInfo.Width, imageInfo.Height};
image->Draw(pDC->GetSafeHdc(), &rc, NULL);


image의 사용이 끝난 경우에는 해제를 해주면 된다.

image->Relase();

CoUninitialize();



Visual Studio 2008의 메뉴에서 {프로젝트-속성}을 선택하고, {구성 속성-링커-입력}에서 "추가 종속성"에 Imaging.lib 파일을 입력해준다.

원본 크기의 사진을 보려면 클릭하세요

컴파일을 하고 디바이스에서 실행을 시켜보면 PNG 파일에서 투명한 부분을 제외한 이미지만 화면에 출력되는 것을 확인할 수 있다.

iPhone이나 Android에서는 한두줄만 코딩하면 그냥 사용할 수 있는 기능을 이렇게 힘들게 구현을 해야하는 것이 Windows Mobile이 가지고 있는 대표적인 문제점 중에 하나라고 생각한다. 애니메이션 구현하는 것은 또 얼마나 힘들것인지...

[ 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 ] 다음 페이지 다음 10번째 페이지