SQLite是一个小型数据库。特别适合于client应用程序使用,它的众多优点就不多说了。有兴趣的去搜索。

话说使用吧。

我们要使用。就须要调用它。如今一步一步来。

第一步:上SQLite官网http://www.sqlite.org/下载它的源代码,它的源代码有两种格式,一种是很多文件都放在一起的,我称之为集成代码包,还有一个是非常多.c和.h文件,是分开的。我称之为松散代码包。松散代码包对编译的要求比較高,我也没那时间再去研究它的源代码,于是又变懒了,使用集成代码包吧。例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2Nwd19jbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

下载图上标注的代码

第二步:准备编译。下载下来之后是个ZIP,解开。里面有shell.c、sqlite3.c、sqlite3.h和sqlite3ext.h这么几个文件,当中shell.c我们不须要,其它的都是要用的

第三步:開始编译,以VS2010为例,打开VS2010。创建一个Win32的DLL空project,然后把sqlite3.c、sqlite3.h和sqlite3ext.h这三个文件加入到project中去,要编译出一个DLL。如今它已经能编译出来了,问题是编译出来之后没有导出函数,是不能用的,所以须要一个DEF文件(符号定义文件),这个文件按理来说我们能够自己加入,只是你假设不阅读源码是加入不了了,我们简单一点。使用官方提供的,这个要另外下载,当然,还是刚才的下载位置,找到SQLite官方为我们提供好的DLL的下载链接。进行下载,例如以下图:

下载下来之后解开这个ZIP。里面有个DEF文件,拷贝到project文件夹中去。然后再在VS2010中加入上,如今有导出函数了,可是编译不能通过,我们须要定义两个宏,他们是:

SQLITE_ENABLE_COLUMN_METADATA

SQLITE_ENABLE_RTREE

把这两个宏加入到project中去,例如以下图:

如今编译,就能够通过了

问题一:你编译Debug版本号和Release版本号的时候这两个宏要分别进行加入,否则是不行的。

问题二:编译Release版本号的时候记得设置成静态编译,否则在没有VC库的机器上不能正常调用这个DLL。

第四步:优化处理和调用

如今,你已经有一个SQLite的DLL了,为了个性化,或者其它要求,你能够加入一个Version资源。然后写上一些个性化的信息。到此为止,你的SQLite的DLL已经编译出来了。我在VS2010下,编译出来的仅仅有601KB。比官方提供的630KB小不少(DLL是越小越好啊),甚至你还能够给它来个数字签名彰显版权(官方不会限制你这么做)。

第五步:成果展示:

最后的问题:在网上看到非常多人想解决这个DLL接口上的char和wchar_t的问题,我也查了一些资料,看了下,官方里出来的这些接口看着是char。事实上是utf-8,也就是说什么字符都能处理,可是这是针对国外英文系的国家,国内用户在将字符串写入数据库之前,要进行转换。读出来之后要再次进行转换。否则是乱码(貌似和解析XML一样啊)。

编译最新的SQLite 3.8.4.3为一个DLL的更多相关文章

  1. 让PDF.NET支持最新的SQLite数据库

    最近项目中用到了SQLite,之前项目中用的是PDF.NET+MySQL的组合,已经写了不少代码,如果能把写好的代码直接用在SQLite上就好了,PDF.NET支持大部分主流的数据库,这个当然可以,只 ...

  2. PDF.NET支持最新的SQLite数据库

    最近项目中用到了SQLite,之前项目中用的是PDF.NET+MySQL的组合,已经写了不少代码,如果能把写好的代码直接用在SQLite上就好了,PDF.NET支持大部分主流的数据库,这个当然可以,只 ...

  3. 编译最新ffmpeg2.0.1到iOS设备

    www.mingjianhua.com 转载请注明出处. 上一篇文章讲了用NDKr9编译最新ffmpeg2.0.1到android平台,一般做了Android平台的编解码就免不了要做iOS,这次一起把 ...

  4. (转)windows下编译最新的x264

    二:<windows下编译最新的x264> X264更新的比较快,每天都有更新,但算法模块,基本结构是没有多大变化的.x264都是用C语言写的包括C99,但C99语法是在VC中是没法用的( ...

  5. apk 反编译 - 最新版图文教程

    apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片).layout.样式.相关的实现代码等.( ...

  6. 获取并编译最新的Notepad++源码

    获取并编译最新的Notepad++源码 http://blog.csdn.net/u012814856/article/details/68947310 Notepad++源码编译及其分析 http: ...

  7. QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接

    QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接: QSqlDatabase database = QSqlDatabase::addD ...

  8. SqlSugar解决SQLite访问的问题:Unable to load DLL 'SQLite.Interop.dll'

    SqlSugar用的版本是4.5.9.5,访问SQLite数据提示错误.在本机调试一时没有什么错误,把代码发布到服务器上以后刚开始运行没有问题,一段时间后报错. English Message : C ...

  9. 在Windows上编译最新的CURL,含有zlib,openssl

    最近,从网上下载了一个curl库,使用时各种报错,都无法启动,于是干脆就直接自己编译了. 1. 准备工作 a. 下载zlib zlib可以使得HTTP请求支持gzip压缩,其地址如下: 官网:http ...

随机推荐

  1. Java基础笔记(2) 程序入口 关键字 标识符 常量 变量

    提醒:关于那些和我一样新鸟来看资料的,能看懂多少看多少,看不懂的就是不重要,重要的你想我自己学习肯定要标注的,这些信息明白每个知识点实际作用就好了,其他的比如等会讲的常量内存,常量池这些都是我找的资料 ...

  2. Selenium win7+selenium2.0+python+JetBrains PyCharm环境搭建

    win7+selenium2.0+python+JetBrains PyCharm环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是py ...

  3. 判断exe是64位还是32位

    右击exe属性,查看兼容模式. 如果有windwos vista之前的版本则为32位的,如下图: 如果没有windwos vista之前的版本则为64位的,如下图:

  4. 团队项目第二阶段个人进展——Day1

    一.昨天工作总结 冲刺第一天,查看了第一阶段的代码 二.遇到的问题 写个的代码发现看不懂了 三.今日工作规划 重新设计页面布局

  5. jquery.validate,错误信息位置

    好长时间没有用jquery.validate.js这个插件了,忘得差不多了.唉,好东西还是要经常拿出来看看的,今天用jquery.validate来做一个小东西,遇到一个问题,就是错误提示信息的位置问 ...

  6. touch创建文件

    创建文件 在cs目录下创建1.txt和2.txt文件 touch ./文件名.txt 或者 touch /root/cs 文件名.txt 或者 echo > ./文件名.txt 或者 >. ...

  7. java基础学习总结——异常处理

    一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.

  8. (转)glew的安装

    http://blog.sina.com.cn/s/blog_858820890100vbys.html 下载链接: https://sourceforge.net/project/downloadi ...

  9. css常见知识点

    1.内核区分 希望某一个浏览器能一统江湖 -ms-transform:rotate(7deg); //-ms代表ie内核识别码 -moz-transform:rotate(7deg); //-moz代 ...

  10. 一些安卓模拟器的IP问题和getOutputStream();关于connect();的函数异常的问题

    ip问题 1.不能使用local host 和127.0.0.1作为本地服务器的地址,而网上无论10.0.0.2还是10.0.2.2的8080端口都无法访问.真正的地址应该在CMD 键入ipconfi ...