如何在Delphi中靜態鏈接SQLite?
1.當然是下載SQLite的源代碼啦,呵呵,不過記得要是allinone的amalgamation版本哦(修正:amalgamation并非allinone,只是corecodeallinone,源代碼里的其他文件也是不能少的!
)2.解壓縮,得到3個文件sqlite3.csqlite3.hsqlite3ext.
h然后把sqlite3.c編譯成obj以便在Delphi中使用要注意的是不要用VC編譯,要用Borland的C++編譯器,比如Delphi自帶的bcc這主要是因為VC編譯的obj是COFF格式的,而Borland用的obj是OMF格式bcc編譯的命令行:bcc32-pc-RT--O-w--6-I(bcc32)\include-csqlite3.c3.光有sqlite3.obj還不夠哦,呵呵,因為sqlite3.c有鏈接其他的庫這里提供所有要用到的obj文件下載4.現在所有的obj文件都準備好了,不過別高興的太早了,現在只完成了一小部分而已...要在Delphi中使用這些obj中的函數,必須要先聲明一下先新建個Unit,比如sqlite3.pas,然后指定鏈接的obj文件,如{$L'OBJ\sqlite3_5_4.obj'}{$L'OBJ\streams.obj'}//duplicato{$L'OBJ\_ftoul.obj'}{$L'OBJ\files.obj'}注意順序哦,呵呵然后添加函數聲明比如要用到sqlite3_open方法,在sqlite的源代碼里聲明是這樣的SQLITE_APIintsqlite3_open(constchar*filename,/*Databasefilename(UTF-8)*/sqlite3**ppDb/*OUT:SQLitedbhandle*/);在Delphi中相應的聲明為:function_sqlite3_open(dbname:PChar;vardb:Pointer):Integer;cdecl;external;注意調用方式為cdecl,函數名要以_開頭,否則會找不到只是sqlite3函數好多哦,呵呵,所以我才說只完成了部分工作嘛...5.OK,完成了函數聲明才算是全部完成現在可以正式使用了~