Ciao a tutti
ho creato una classe e l'ho istanziata in un modulo (main). dallo stesso modulo ho lanciato un thread. Come posso utilizzare la classe del modulo (main) nella thread ?
Ciao a tutti
ho creato una classe e l'ho istanziata in un modulo (main). dallo stesso modulo ho lanciato un thread. Come posso utilizzare la classe del modulo (main) nella thread ?
dovresti usare un puntatore o un reference ...
Sono troppo neofita per capire cosa fare. Allego il codice della main. Riesci a darmi qualche suggerimento in più ?
cdblog è la classe che vorrei utilizzare nel tread.
wrpDbSqlite cdblog;
// ----------------------------------------
// --- Code
int main(int argc, char* argv[])
{
CThrLocbus *m_pCommThread;
fprintf(stderr, "Start program\n");
// Open db
if( cdblog.db_open("testdb") != SQLITE_OK ) {
// failed
fprintf(stderr, "Can't open database: %s\n", cdblog.db_errmsg());
fprintf(stderr, "Program terminated\n");
return 0;
} else {
// Open with success
fprintf(stderr, "Open database successfully\n");
// Create table if not exists
cdblog.db_create();
// Do PREPARE
cdblog.db_prepareIns("insert into tbLog (FirstName, LastName, CodeId, NumDevice, DateLog) values (?, ?, ?, ?, datetime('now'))");
//************************* Initialize Comm thread
m_pCommThread = new CThrLocbus();
if (m_pCommThread) {
m_pCommThread->run();
Sono troppo neofita per capire cosa fare. Allego il codice della main. Riesci a darmi qualche suggerimento in più ?
cdblog è la classe che vorrei utilizzare nel tread.
wrpDbSqlite cdblog;
// ----------------------------------------
// --- Code
int main(int argc, char* argv[])
{
CThrLocbus *m_pCommThread;
fprintf(stderr, "Start program\n");
// Open db
if( cdblog.db_open("testdb") != SQLITE_OK ) {
// failed
fprintf(stderr, "Can't open database: %s\n", cdblog.db_errmsg());
fprintf(stderr, "Program terminated\n");
return 0;
} else {
// Open with success
fprintf(stderr, "Open database successfully\n");
// Create table if not exists
cdblog.db_create();
// Do PREPARE
cdblog.db_prepareIns("insert into tbLog (FirstName, LastName, CodeId, NumDevice, DateLog) values (?, ?, ?, ?, datetime('now'))");
//************************* Initialize Comm thread
m_pCommThread = new CThrLocbus();
if (m_pCommThread) {
m_pCommThread->run();
}
}
Grazie mille
Avevo capito male.. Tu vuoi rendere visibile lo stesso oggetto a due o più moduli?
Usa la parola chiave extern per specificare che l'istanza della variabile si trova in un altro modulo.
Ho dichiarato
extern wrpDbSqlite cdblog;
nella thread e tutto funziona !
Grazie mille !!!