My code:
Code:
//------------------------------------------------------------------------------
#include <iostream>
#include <gtkmm.h>
#include "FrmMain.h"
#include <cheese/cheese.h>
#include <cheese/cheese-camera.h>
#include <cheese/cheese-camera-device.h>
#include <cheese/cheese-camera-device-monitor.h>
#include <cheese/cheese-widget.h>
#include <cheese/cheese-gtk.h>
//------------------------------------------------------------------------------
#define IMAGE_FILE "image.png"
//------------------------------------------------------------------------------
using namespace std;
using namespace Gtk;
//------------------------------------------------------------------------------
bool OnDrwAreaDrawSignal(const Cairo::RefPtr<Cairo::Context> &ccontext,Gtk::DrawingArea *drawarea);
//------------------------------------------------------------------------------
int main (int argc, char *argv[])
{
int a = 0;
char ***b = NULL;
cout << "Avvio applicazione" << endl;
// Creiamo un oggetto di tipo Gtk::Main. Il costruttore di questo oggetto
// inizializza una sessione gtkmm e controlla gli argomenti passati al
// programma. Questa operazione è necessaria in ogni applicazione gtkmm.
Gtk::Main kit(argc, argv);
// Leggiamo il file xml
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("gui.glade");
// Creiamo un puntatore a finestra
FrmMain *frm = 0;
// Associamo la finestra a quella descritta dal file
builder->get_widget_derived("frmMain", frm);
// Carichiamo una immagine per lo sfondo
try {
frm->BGImage = Gdk::Pixbuf::create_from_file(IMAGE_FILE);
}
catch(const Glib::FileError& errore) {
cerr << "Errore File: " << errore.what() << endl;
}
catch(const Gdk::PixbufError& errore) {
cerr << "Errore PixBuf: " << errore.what() << endl;
}
// Inizializzazione libcheese
// cout << "Inizializzazione libcheese ..." << endl;
// if( !cheese_init(a,b) ) {
// cerr << "cheese_init() fallita" << endl;
// return -1;
// }
if( !cheese_gtk_init(&a,b) ){
cerr << "cheese_gtk_init() fallita" << endl;
return -1;
}
cout << "Fine inizializzazione libcheese" << endl;
// Avviamo il loop delle gtk
kit.run(*frm);
cout << "Termine applicazione" << endl;
return 0;
}
gives a segmentation error. Why?
Bookmarks