Объект SQLite3 не понят? - PullRequest
       9

Объект SQLite3 не понят?

0 голосов
/ 24 апреля 2009

Теперь я получаю сообщение об ошибке:

1> c: \ development \ document_manager \ document_manager \ storage_manager.h (7): ошибка C2079: «storage_manager :: db» использует неопределенную структуру «sqlite3»

с

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

Старый вопрос: Всем привет. Я скачал sqlite-amalgamation-3_6_13.zip из http://www.sqlite.org/download.html,, но не могу скомпилировать его в своем проекте. Я получаю много ошибок, таких как:

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

Что мне нужно сделать, чтобы правильно скомпилировать мой проект? Спасибо!

Edit: Я не хочу компилировать всю программу как C, я просто хочу скомпилировать три файла как c, это возможно?

РЕДАКТИРОВАТЬ: ИСПРАВЛЕНО! Я создал новый проект.

Ответы [ 3 ]

1 голос
/ 24 апреля 2009

Похоже, вы пытаетесь скомпилировать программу на C, используя компилятор C ++. Хотя существует много кода C, который также является допустимым C ++, это разные языки.

Ваш компилятор может иметь некоторые параметры или настройки для компиляции кода C. Проверьте документацию вашего компилятора.

1 голос
/ 24 апреля 2009

Вам необходимо скомпилировать файл как код C, а не C ++. Щелкните правой кнопкой мыши по проекту или только по файлу .c, и в свойствах убедитесь, что он настроен на компиляцию как C, а не C ++. (Вы можете установить этот параметр только для файла, а не для всего проекта)

0 голосов
/ 24 апреля 2009

Разве компилятор не говорит вам, что делать? Вам нужно явное приведение:

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

Это, конечно, не проблема в C, а проблема в C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...