WinCE에서 CxImage 사용하기
* OpenSource Image library인 CxImage를 WinCE 사용하는 방법
* CxImage
http://www.codeproject.com/bitmap/cximage.asp
http://www.xdp.it
* CE | PPC 용으로 포팅된 CxImage
htpp://www.codeproject.com/ce/png__jpg__etc_on_pocketpc.asp
http://www.smartdev.fr/index.php?option=com_content&task=view&id=11&Itemid=25
smartdev.fr에서 다운 받은 파일은 압축을 풀어보면 evc를 사용하지 말고
Visual Studio 2005를 사용하라고 나온다. ㅠ.ㅠ
나는 EVC 환경에서 코딩을 하니까 CodeProject에서 받은 파일을 쓰기로 결정!
일단 압축을 풀고 CXImageLib.vcw 파일을 열면 configuration이 없다고 뜨는데
몽땅 무시하고 모든 프로젝트에 configuration을 만들어준다.
Build -> Configuration -> Project 선택 -> Add -> OK
Copy settings from : 항목에서 Default Debug Configuration과
Default Release Configuratio 둘다 해주면 좋을 듯
위 과정을 모든 프로젝트에 적용한다.
tiff / png library에서 zlib를 참조하므로 zlib 를 먼저 컴파일 하는 것이 좋다.
각각의 프로젝트를 build 하다보면 zlib.h를 못 찾아서 오류가 몇번 날 텐데 include 문에서
파일의 경로를 지정해주면 없어진다.
j2000 프로젝트를 build 하면 fix.c에서 다음과 같은 에러가 뜬다.
.....\j2000\fix.c(39) : error C2632: 'long' followed by 'long' is illegal
.....\j2000\fix.c(39) : error C2632: 'long' followed by 'long' is illegal
Project -> Settings -> C/C++ 탭, category : preprocessor
Preprocessor definitions: 에 WIN32를 추가해준다.
CXImage 프로젝트를 build 하면 558개의 어마어마한 에러가 뜨는데
이 역시 WIN32 definition을 추가해주면 해결 된다.
마지막으로 PocketPCTest 프로젝트는 다른 에러가 뜨는데...
WIN32 definition 추가로는 해결이 되지 않는다.
_WIN32_WCE 추가로도 해결이 되지 않는다.
해서~! 어차피 필요없는 프로젝트기 때문에 프로젝트 자체를 삭제~
* ximage.h와 ximawnd.cpp 을 수정
CXIMAGE_SUPPORT_WINDOWS 라고 정의된 곳의 함수중
Stretch() 와 Draw2() 함수를 _WIN32_WCE 쪽으로 이동.
CreateFromHBITMAP(), Draw(), Tile(), MakeBitmap() 함수는 CE에서
지원하지 않는 함수를 사용하기에 컴파일에서 에러 발생
%%% WinCE에서 지원하지 않는 함수
CreateDIBitmap(), GetDIBits(), ExtSelectClipRgn(), GetPaletteColor(), GetPixelIndex()
잘 동작할지는...
미지수...
[ http://www.smartdev.fr/Downloads/cximage599c_full_WinCE.zip ]
사이트에 링크가 사라졌는데 위 링크를 클릭하면 받을 수 있다.