全站数据
8 4 2 0 5 8 1

如何在Delphi中静态链接SQLite

漫漫自考路 | 简单学习,快乐成才!         
问题更新日期:2024-10-27 16:04:38

问题描述

如何在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,sqlite3**ppDb);在Delphi中相应的声明为:function_sqlite3_open(dbname:PChar;vardb:Pointer):Integer;cdecl;external;注意调用方式为cdecl,函数名要以_开头,否则会找不到只是sqlite3函数好多哦,呵呵,所以我才说只完成了部分工作嘛...5.OK,完成了函数声明才算是全部完成现在可以正式使用了~