It's done:
....
private:
static int analisis_ultimo( void *NotUsed, int argc, char **argv, char
**azColName );
ultima_entrada *ultima;
....
El Sábado 20 Mayo 2006 22:07, Brannon King escribió:
> Declare it static in the class declaration, not at the function definition.
>
> Esteban Zeller wrote:
> > El Sábado 20 Mayo 2006 21:40, Brannon King escribió:
> >> Is it declared as a static function? Something like "static int
> >> bd::analisis_ultimo(void* arg)" ? I assume it would need to be static
> >> just like all the other thread function parameters or callback
> >> parameters in various APIs.
> >>
> >> Esteban Zeller wrote:
> >>> I'v got the next problem:
> >>>
> >>> string cola = "SELECT * FROM ultimo;";
> >>> char zErrMsg;
> >>> int ret = sqlite3_exec( base_datos, cola.c_str(),
> >>> (bd::analisis_ultimo), 0, &zErrMsg );
> >>> ....
> >>>
> >>> the compiler tell me this:
> >>>
> >>> /home/Programas/preguntas/src/bd.cpp:151: error: no matches converting
> >>> function `analisis_ultimo' to type `int (*)(void*, int, char**,
> >>> char**)'
> >>>
> >>> the functions uses the same prototipe of the example but it's inside of
> >>> a class
> >
> > If I get it declared static the compiler say the next:
> >
> > /home/Programas/preguntas/src/bd.cpp: At global scope:
> > /home/Programas/preguntas/src/bd.cpp:168: error: cannot declare member
> > function `static int bd::analisis_ultimo(void*, int, char**, char**)' to
> > have static linkage
> >
> > here is part of the code:
> >
> >
> > ultima_entrada * bd::cargar_ultimo_uso()
> > {
> > string cola = "SELECT * FROM ultimo;";
> > char *zErrMsg;
> > int ret = sqlite3_exec( base_datos, cola.c_str(), (bd::analisis_ultimo),
> > 0, &zErrMsg );
> > if( ret != SQLITE_OK )
> > {
> > cout<<"Error al ejecutar la consulta SQL:"<<cola<<endl;
> > cout<<"Numero de error:"<<ret<<endl;
> > cout<<"Descripcion del error:"<<zErrMsg<<endl;
> > }
> > else
> > {
> > return( ultima );
> > }
> > }
> >
> > static int bd::analisis_ultimo( 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;
> > }
_________________________________________________________
Horóscopos, Salud y belleza, Chistes, Consejos de amor:
el contenido más divertido para tu celular está en Yahoo! Móvil.
Obtenelo en http://movil.yahoo.com.ar