Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#1

C: Callback Funktion aus DLL verlagern

  Alt 20. Dez 2009, 10:22
Hi,
nächstes Problem:
Ich habe eine Funktion deschrieben, die Parameter an Sqlite weitergibt.
Unter anderem auch eine Callbackfunktion. Jetzt möchte ich die Callbackroutine aus der DLL raus haben.
Die Callbackroutine soll im Delphi Programm stehen.
das problem ist, dass ich die Callbackadresse irgendie weitergeben muss!
Wie kann ich das machen?

Code:
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;
  for(i=0; i<argc; i++){
   // printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  printf("\n");
  return 0;
}

extern "C" __declspec( dllexport ) void QtTestDll_Sqlite(char* Database,char* SQL_string)
{
    sqlite3 *db;
    char *zErrMsg = 0;
    int rc;
    TCHAR Inhalt[101];

    rc = sqlite3_open(Database, &db);
    if( rc ){
      //Fehlermeldung ausgeben. Wird noch implementiert.
      sqlite3_close(db);
      exit(1);
    }
    wtoci(Inhalt,SQL_string,sizeof(SQL_string));
    rc = sqlite3_exec(db,SQL_string,callback, NULL, &zErrMsg);
    if( rc!=SQLITE_OK ){
      //Erfolgsmeldung wird noch implementiert.
      sqlite3_free(zErrMsg);
    }
    sqlite3_close(db);

   //
}

Grüsse
Rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat