SQLite 3.7.13的加密解密(五)—— 修正编译错误和警告

简介:

上面的代码是从网上下载下来的,它使用的SQLite版本比较旧,因此在SQLite 3.7.13下编译不通过,下面需要对编译错误和警告逐一修正。

编译信息

原因与修改方法

'Pager' has no member named 'pCodecArg'

3.7.13版本中,Pager的成员变量pCodecArg名称修改为pCodec,因此用到pCodecArg变量的地方修改为使用pCodec

too few arguments to function 'sqlite3PagerPagecount'

原来sqlite3PagerPagecount()函数用返回值得到页数量,3.7.13改为用指针参数得到页数量。

修改前代码:

Pgno nPage = sqlite3PagerPagecount(p);

修改如下:

int nPage;

sqlite3PagerPagecount(p, &nPage);

too few arguments to function 'sqlite3BtreeRollback'

3.7.13版中sqlite3BtreeRollback()函数增加了个参数,是表示之前SQL语句执行结果的,在网上查了一下,这里直接传常量SQLITE_OK

implicit declaration of function 'sqliteFree'

sqliteFree()函数在3.7.13版本中已经没有了,修改为使用sqlite3_free()函数。

implicit declaration of function 'sqliteMalloc'

原因同上,修改为使用sqlite3_malloc()函数。

 

 

implicit declaration of function 'DATA_TO_PGHDR'

3.7.13版本中,宏DATA_TO_PGHDR已经被去掉,这里暂时把该if语句下的代码全部注释。

warning: passing argument 2 of 'sqlite3pager_set_codec' from incompatible pointer type

sqlite3pager_set_coedc()函数的第二个参数类型为:void *(*xCodec)(void*, void*,Pgnoint)

而调用的地方传递的参数类型为:void * sqlite3Codec(void *pArg, unsigned char *data,Pgno nPageNum, int nMode)

很明显,第二个参数类型不匹配,修改sqlite3Codec()函数的第二个参数类型为void *,注意相应的函数声明的地方也要修改。

warning: passing argument 3 of 'sqlite3PagerAcquire' from incompatible pointer type

这里第三个参数类型为void *,实际要求的数据类型为DbPage *,将对应变量类型定义为DbPage *即可。

warning: variable 'bRc' set but not used

这个警告不影响使用,不用改。

warning: 'sqlite3PagerSetCodec' defined but not used

同上






本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/940814,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
Oracle 关系型数据库 数据库
mstsc连接远程服务器CredSSP加密数据库修真、加密Oracle修正报错解决办法
mstsc连接远程服务器CredSSP加密数据库修真、加密Oracle修正报错解决办法
|
Oracle 安全 关系型数据库
出现身份验证错误,要求的函数不受支持(这可能是由于CredSSP加密Oracle修正)
出现身份验证错误,要求的函数不受支持(这可能是由于CredSSP加密Oracle修正)
|
Oracle 关系型数据库 数据安全/隐私保护
远程桌面连接出现身份验证错误。 要求的函数不受支持,这可能是由于 CredSSP 加密 Oracle 修正。
远程桌面连接出现身份验证错误。 要求的函数不受支持,这可能是由于 CredSSP 加密 Oracle 修正。 查看解决方案
1990 0
|
Oracle 关系型数据库 数据安全/隐私保护
【图文】远程桌面链接:这可能是由于credssp加密oracle修正
问题场景如下:  此错误的解决方法: 1.Win+R 输入regedit打开注册表 找到对应的以下目录 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 此时如果System下没有Cred.
6038 0
|
Oracle 关系型数据库 数据安全/隐私保护
Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
远程桌面连接Window Server时报错信息如下: 出现身份验证错误,要求的函数不正确,这可能是由于CredSSP加密Oracle修正。 解决方法: 运行 gpedit.msc 本地组策略: 计算机配置>管理模板>系统>凭据分配>加密Oracle修正 选择启用并选择易受攻击。
3172 0
|
Oracle 关系型数据库 数据安全/隐私保护
mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法
win10很完美,用的也很舒服!当然人无完人,也总有不尽如人意的时候。比如说我们经常用的远程mstsc,就出现了一个坑,既然出现坑了,我们就得把坑解决掉吧!下面就记录一下这个坑的解决方法。 查看微软CredSSP更新日志 查看win10系统升级日志,果然找到了原因,是因为CVE-2018-0886 的 CredSSP 2018 年 5 月 8 日更新默认设置从“易受攻击”更改为“缓解”的更新。
6471 0
|
Oracle 关系型数据库 数据安全/隐私保护
Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
原文:Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法 升级至win10 最新版本10.0.17134,远程桌面连接Window Server时报错信息如下: 出现身份验证错误,要求的函数不正确,这可能是由于CredSSP加密Oracle修正。
1467 0
|
算法 数据安全/隐私保护 数据库管理
|
数据库 数据安全/隐私保护 数据库管理
|
数据安全/隐私保护 数据库管理