Basic stuff necessery to begin with developing software for WinCE:
1. Read
http://wiki.lazarus.freepascal.org/Windows_CE_Interface, you must read it, it's a short read.
That is the best way to understand the basic stuff about WinCE.
2. There are download links there, you should
a) download regular Lazarus installation program (for development under Windows 32-bit)
b) download the Lazarus for Arm procesors add-on
c) download the mentioned PocketPC emulator as describe on the link.
d) install these
3.Login to lazarus forum and read
http://www.lazarus.freepascal.org/index.php/topic,18828.0.htmlThere are two pictures that you can see only if you are logged in.
These pictures describe what and where you should set in order to be able to cross-compile for WinCE.
4.In the PocketPC emulator program you should set-up a so called "shared folder", that's a folder where you put
a) your *.exe file
b) your sqlite3.dll (for winCE, not the same like for win32)
c) DO NOT put your sqlite DBFile under that folder
5.During design time in your application you should be aware that WinCE doesn't handle relative file paths, WinCE only understands full-path. This means that you should code similar to this :
SQLiteLibraryName:=ExtractFilePath( Application.ExeName )+'sqlite3.dll';
SQLite3Connection1.DatabaseName:='\Temp\MyDatabase';
6. This "shared folder" within the PocketPC emulator is seen as "\My Device\Storage Card" representing a virtual Storage Card.
*** It is important to NOTE: if you place your database file under this virtual Storage Card folder and your application tries to write data to it there wil be an error reported "Disk I/O Error" . It's a common error and it disapears if you store your DB file under a regular WinCE folder instead of this virtual one. When you place your DB file on a real device's real Storage Card folder this error is not reported, it just works.
7.You will note the size of your exe file, and I know you will want to shrink it, to do that you will use
C:\lazarus\fpc\2.6.0\bin\i386-win32\arm-wince-strip.exe --strip-all yourexe.exe