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