SQLite3对象不明白?

时间:2009-04-23 21:24:35

标签: c++ sqlite

现在我发现了一个错误:

1> c:\ development \ document_manager \ document_manager \ storage_manager.h(7):错误C2079:'storage_manager :: db'使用未定义的struct'sqlite3'

 #pragma once
 #include "sqlite3.h"
class storage_manager
{
    sqlite3 db;
    sqlite3** db_pp;
public:
    void open()
    {
        sqlite3_open("data.db", db_pp);
    }
};

旧问题: 嗨,大家好。我从http://www.sqlite.org/download.html下载了sqlite-amalgamation-3_6_13.zip,但是我无法在我的项目中编译它。我收到很多错误,如:

c:\pathtoproject\sqlite3.c(11337) : error C2440: '=' : cannot convert from 'void *' to 'char *'
        Conversion from 'void*' to pointer to non-'void' requires an explicit cast

c:\pathtoproject\sqlite3.c(12023) : error C2440: '=' : cannot convert from 'void *' to 'sqlite3_int64 *'
        Conversion from 'void*' to pointer to non-'void' requires an explicit cast

如何正确编译项目需要做什么?谢谢!

编辑:     我不想将整个程序编译为C,我只想将三个文件编译成c,这可能吗?

编辑:固定!我创建了一个新项目。

3 个答案:

答案 0 :(得分:1)

看起来您可能正在尝试使用C ++编译器编译C程序。虽然有很多C代码也是有效的C ++,但它们是不同的语言。

您的编译器可能有一些开关或设置来编译C代码。检查编译器文档。

答案 1 :(得分:1)

您需要将文件编译为C代码而不是C ++。 右键单击项目或只是.c文件,在属性中,确保将其设置为C编译,而不是C ++。 (您可能只想为文件设置此设置,而不是整个项目)

答案 2 :(得分:0)

编译器不会告诉你该怎么做?你需要一个明确的演员:

void *pv = /* some value */;
char *pc = (char*) pv;

这当然不是C中的问题,而是C ++的问题。