I am attempting to use the Glib::KeyFile in my application. It actually worked and the key values were extracted just as I expected. I wanted to experiment so I copied my test app to another folder. I tampered and then ran but it crashed with
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. I realized that I had forgotten to copy the key file so I copied that to the new test directory and then the program ran. I got a bit curious about this so I looked at the glibmm reference for Glib::KeyFile::load_from_file where it said that it would return false if the file could not be loaded. I trimmed it down to a very simple gtkmm app that does nothing but create an instance of KeyFile and call load_from_file. Still I found that the program would die if the key file is not present. It is possible that I am not understanding the reference material but I expect that the function would just return false if the file is not present. In my example that I have included, I expect to just get the cout output file_success=0 Is this not correct? Is there a bug in Glib::KeyFile? Damon Register #include <gtkmm/window.h> #include <gtkmm/main.h> #include <gtkmm/stock.h> #include <glibmm/keyfile.h> #include <iostream> class ExampleWindow : public Gtk::Window { public: ExampleWindow(); virtual ~ExampleWindow(); protected: Glib::KeyFile* mykey; }; ExampleWindow::ExampleWindow() { bool file_success = false; set_title("KeyFile example"); show_all_children(); mykey = new Glib::KeyFile(); file_success = mykey->load_from_file( "hello.ini", Glib::KEY_FILE_NONE ); //NONE is default std::cout << "file_success=" << file_success << std::endl; } ExampleWindow::~ExampleWindow() { delete mykey; } int main(int argc, char *argv[]) { Gtk::Main kit(argc, argv); ExampleWindow window; Gtk::Main::run(window); return 0; } #The key file # this is just an example # there can be comments before the first group [First Group] Name=Key File Example\tthis value shows\nescaping # localized strings are stored in multiple key-value pairs Welcome=Hello Welcome[de]=Hallo Welcome[fr]=Bonjour Welcome[it]=Ciao _______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtkmm-list