Kurz6 - Kapitola6

17. června 2007 v 10:39 | http://www.sweb.cz/kurz_evt/ |  Programování pro WinCE

8.6 Vytvoření knihovny SQLite

Proto, abychom mohli databázi SQLite používat v našem programu jako statickou knihovnu, kterou přilinkujeme do programu, musíme si ji nejprve vytvořit. Knihovna je vlastně samostatně přeložený program, který umožní aplikaci využít funkce a data v něm obsažené. Začneme tedy takový program tvořit.
V eVT si založte nový projekt s cílem WCE Static Library. Jeho jméno může být např. "SQLite322" (já jsem měl při překladu k dispozici verzi 3.2.2). Na dalším okně nemusíte zaškrtávat nic. eVT vám přichystá prázdný projekt bez zdrojových souborů. Na Internetu (v době psaní tohoto kurzu to bylo zde http://sqlite-wince.sourceforge.net) najděte a stáhněte soubor se zdrojovými soubory SQLite pro Windows CE. Zmíněná verze měla název sqlite-wince-3.2.2.zip.
Zdrojové soubory rozbalte do adresáře vašeho nového projektu. Použijte všechny *.c a *.h soubory včetně assert.h a time.h. Výjimkou je soubor shell.c - ten nepoužijeme. Přidejte všechny zdrojové sobory do projektu (Project -> Add To Project -> Files...).
Pokusíte-li se nyní projekt přeložit jako aplikace PocketPC - Release verze pro příslušný procesor, dostanete asi řadu chybových hlášení. Zmíněné dva soubory assert.h a time.h jsou totiž ve všech souborech hlásících chybu označeny jako standardní knihovny v závorkách <>. Máte tedy možnost na všech místech opravit závorky na "" nebo jednodušeji zkopírovat oba soubory do adresáře standardních hlaviček - obvykle:
C:\Windows CE Tools\wce300\MS Pocket PC\include\
Nyní již by překlad měl skončit takto :-)
Creating library...

SQLite322.lib - 0 error(s), 0 warning(s)

Knihovnu byste měli mít připravenou. Pro její použití stačí abyste si z adresáře např. ARMRel zkopírovali soubor SQLite322.lib do adresáře programu PhoNumbs a k tomu přidali hlavičkový soubor, který nese rozhraní pro práci s SQLite. Soubor se jmenuje sqlite3.h a najdete ho v hromadě zdrojových souborů.
Poznámka:
Pokud byste chtěli vytvořit knihovnu pro starší verzi Windows 2.11, dostanete pravděpodobně při linkování řadu Warnings. Windows 2.11 nemají nastavenou řadu standardních funkcí, které jsou v knihovně stdlib.h. Jako jedno z řešení je vytvořit si nový vlastní hlavičkový soubor s tímto obsahem:
// Definice funkci, ktere chybely pri prekladu pro WinCE 2.11

_CRTIMP int __cdecl _isctype(int, int);
#define isalpha(_c) ( _isctype(_c,_ALPHA) )
#define isupper(_c) ( _isctype(_c,_UPPER) )
#define islower(_c) ( _isctype(_c,_LOWER) )
#define isdigit(_c) ( _isctype(_c,_DIGIT) )
#define isxdigit(_c) ( _isctype(_c,_HEX) )
#define isspace(_c) ( _isctype(_c,_SPACE) )
#define ispunct(_c) ( _isctype(_c,_PUNCT) )
#define isalnum(_c) ( _isctype(_c,_ALPHA|_DIGIT) )
#define isprint(_c) ( _isctype(_c,_BLANK|_PUNCT|_ALPHA|_DIGIT) )
#define isgraph(_c) ( _isctype(_c,_PUNCT|_ALPHA|_DIGIT) )
#define iscntrl(_c) ( _isctype(_c,_CONTROL) )
#define isascii(_c) ( (unsigned)(_c) < 0x80 )

#define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b)))
Tento hlavičkový soubor pak vložte do všech souborů, které hlásí Warning. Pak by již překlad měl proběhnou bez chyb.

Co bychom si měli z této lekce zapamatovat?

  • eVT umožňuje vytvořit jak DLL, tak staticky linkovanou knihovnu.
  • Knihovnu můžeme staticky přilinkovat k programu, nebo použít ve formě samostatné DLL knihovny.
 

1 člověk ohodnotil tento článek.

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.