现在我发现了一个错误:
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,这可能吗?
编辑:固定!我创建了一个新项目。
答案 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 ++的问题。