Создаю приложение.
static void g_startup ( GApplication *app, gpointer data ) {
}
int main ( int argc, char **argv ) {
init_opts ();
// parser_config_init ( );
// signal ( SIGINT, sig_handle );
daemon ( 1, 1 );
Gapp app( prog );
global_app = app.get_app ( );
app.set_callback ( g_startup );
gint ret = app.run ( );
return ret;
}
Указываю g_startup как указатель в app.set_callback. Вот как выглядит Gapp:
class Gapp {
public:
Gapp( const char *prog ) {
app = g_application_new ( prog, G_APPLICATION_FLAGS_NONE );
g_application_register ( app, NULL, NULL );
}
GApplication *get_app ( ) {
return app;
}
void set_callback ( void (*startup) ( Gapplication *gapp, gpointer data ) ) {
g_signal_connect ( app, "activate", G_CALLBACK ( startup ), NULL );
}
gint run() {
return g_application_run ( app, 0, 0 );
}
private:
GApplication *app;
};
Выводит ошибку такую.
In file included from main.cpp:18:0:
app.h:14:39: error: expected ‘,’ or ‘...’ before ‘(’ token
void set_callback ( void (*startup) ( Gapplication *gapp, gpointer data ) ) {
^
main.cpp: In function ‘int main(int, char**)’:
main.cpp:63:31: error: invalid conversion from ‘void (*)(GApplication*, gpointer) {aka void (*)(_GApplication*, void*)}’ to ‘void*’ [-fpermissive]
app.set_callback ( g_startup );
^
In file included from main.cpp:18:0:
app.h:14:8: note: initializing argument 1 of ‘void Gapp::set_callback(void*)’
void set_callback ( void (*startup) ( Gapplication *gapp, gpointer data ) ) {
^~~~~~~~~~~~
makefile:3: recipe for target 'all' failed
make: *** [all] Error 1
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я создал три класса, в каждом по приватному атрибуту, и с помощью дружественной функции использовал их значенияНо функция дружественна лишь...
Как открыть файл с именем, заданым в отдельной строке без указания полного пути, только для чтения? В какой директории файл должен находиться?