2009-04-24 5 views
0

私のプロジェクトにsqlite3.c sqlite3.hをインポートしましたが、コンパイルに問題があります。VC9のSQLite3のトラブル

エラー:

1>c:\...\storage_manager.h(7) : error C2079: 'storage_manager::db' uses undefined struct 'sqlite3' 
    1>storage_manager.cpp 
    1>c:\...\storage_manager.h(7) : error C2079: 'storage_manager::db' uses undefined struct 'sqlite3' 
    1>ui_manager.cpp 
    1>c:\...\storage_manager.h(7) : error C2079: 'storage_manager::db' uses undefined struct 'sqlite3' 

コード:

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

#pragma onceなしで試してください –

+0

プラグマを削除しても何も変わりません。 –

答えて

1

私は気づいたあなたはタイプsqlite3の呼ばデシベルのスタック変数を作成してみてください。これはうまくいきません。なぜなら、sqlite3はハンドルであり、ポインタ変数のみを持つことができます。そのポインタ変数のアドレスをsqlite3_openに渡す必要があります。

@Neilバターワースはあなたがタイプsqlite3の、ポインタのみのオブジェクトを作成することになっていません

+0

sqlite3.hファイルは既にこれを行います –

+0

それでも動作しません。 –

+0

あなたは前方宣言を試みるでしょう、彼らは私のために働きます(Linuxのgcc) – lothar

1

:-)私より少し早くそれを見つけました。次の行を削除します。

sqlite3 db; 

すべてがOKです。