c++ - 如何从另一个平台(iOS 到 Windows)打开和读取 SQLite 数据库

标签 c++ database sqlite ios5 mfc

我正在研究一个 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 .

但是,结果是一样的。所以, 谁能告诉我如何才能做到这一点?

提前致谢。

最佳答案

来自 http://sqlcipher.net/ :

SQLCipher has broad platform support for [..] C/C++ [..] iPhone/iOS [..]

也许在您的 Windows 应用程序中使用 SQLCipher 可以解决不兼容问题。

关于c++ - 如何从另一个平台(iOS 到 Windows)打开和读取 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185771/

相关文章:

Android 应用程序离线同步到 Azure SQL Server 和 Blob 存储

c++ - 为什么在构建 std::string 时会出现 R6030 错误?

c++ - 如何为我的非静态转置函数实现 matrix.Transpose()?

mysql - 如何使用表中的现有变量在表中创建递增变量

mysql - wso2设置数据库mysql

sql - SQL查询,使用MAX

c++ - Microsoft HTTP Server API - 使用 SSL,如何要求客户端证书?

c++ - 我们在 C++ 中需要双重调度/访问者到底发生了什么

sql - hive 中的 with (nolock) 相当于 sql (nolock)

java - 支持Sqlite的最简单的Java ORM是什么?