アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のサイトを参考にさせて頂き、BCB5を使用してSQLite3を操作しようと格闘中です。
自分のレベル的には初心者を脱しようかといったところだと思います。
http://members.jcom.home.ne.jp/komina/wiki/42434 …

TEdit1一つに郵便番号7桁を入力して、Button1クリックで該当する住所を検索してMemo1に表示するものですが、コンパイルエラーになってしまい対処法がわかりません。
ちなみにそこで紹介されている、ライブラリをリンクするのが上手くいきませんで
sqlite3.cをプロジェクトに追加してメイクしました。
また、文字コードをUTF-8に変換するというのが別サイトにも書かれていました

エラー内容は、
E2034 'int(*(_closure))(void *,int,char**,char**))(void*,int char**,char**)'型は'int(*)(void*,int,char**,char**)'型に変換できない。
E2342 パラメータ'callback'はint(*)(void*,int,char**,char**)型として定義されているのでvoidは渡せない

以下、ソース抜粋です。宜しくご教授お願いいたします。

int TFmMain::callback(void* arg,int argc,char** argv,char** column){
AnsiString addr1=argv[0];
AnsiString addr2=argv[1];
AnsiString addr3=argv[2];

add_message(addr1+addr2+addr3);

return SQLITE_OK;
}


void __fastcall TFmMain::Button1Click(TObject *Sender)
{
sqlite3* db;

if(sqlite3_open("DBTEST1.db",&db)==SQLITE_OK){
add_message("DB open");

int rtn;
char* sql;

sql=sqlite3_mprintf("SELECT ADDR1,ADDR2,ADDR3 FROM ZIP WHERE ZIP=%d"
,StrToInt(Edit1->Text));

add_message(sql);

rtn=sqlite3_exec(db,sql,callback,NULL,NULL); <<< ここでエラー発生!!
if(rtn!=SQLITE_OK){
add_message("COMMAND err");
}

sqlite3_free(sql);
sqlite3_close(db);
add_message("DB close");
}else{
add_message("DB open err");
}
}

A 回答 (1件)

callbackが 非-staticなメンバ関数だから。

    • good
    • 0
この回答へのお礼

ありがとうございます。
自分でした一度目にした質問が記載されないと思い、二回も同じような質問をしてしまいました。
大変申し訳ないですが、こちらは打ち切らせていただきます。

お礼日時:2012/04/15 09:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!