我正在研究一个 MFC
我必须使用 sqlite
的应用程序iOS
的数据库申请。
iOS
数据库使用 SQLite
加密API 调用 sqlite3_key()
.
但是当我尝试打开与 iOS
相同的数据库时在我的 MFC
应用程序抛出异常,提示文件已加密或不是数据库,无法从数据库中读取数据。
iOS
数据库将从 Dropbox
下载通过 MFC
应用程序并将替换当前数据库并使用它代替以前的
我使用以下代码使用 CppSqlite3
Wrapper 打开数据库对于 Sqlite
:
CppSQLite3DB db;
try{
db.open("mydb.db");
TRACE(_T("database opened"));
db.key("1234", strlen("1234"));
}catch(CppSQLite3Exception e){
return NULL;
}
作为 CppSQLite3DB
类没有名为 key()
的函数.我已经在类中添加了该功能
void CppSQLite3DB::key(const char* szKey, int nKey)
{
if (mpDB)
{
sqlite3_key(mpDB, szKey, nKey);
}
}
并将我的图书馆升级到SQLiteEncrypt .
而 iOS
应用程序正在使用 SQLCipher
对于 Database
.
但是,结果是一样的。所以, 谁能告诉我如何才能做到这一点?
提前致谢。
最佳答案
SQLCipher has broad platform support for [..] C/C++ [..] iPhone/iOS [..]
也许在您的 Windows 应用程序中使用 SQLCipher 可以解决不兼容问题。
关于c++ - 如何从另一个平台(iOS 到 Windows)打开和读取 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185771/