Strona 1 z 1
[SOLVED] [C++] [Libnotifymm] * w deklaracji
: 06 lut 2010, 08:33
autor: bart13
Witam. Mam problem z deklaracją Notify::Notification. Otóż muszę przy deklaracji postawić *, bo inaczej kompilator nie chce kompiloać, a gdy chcę użyć Notify::Notification::Notification kompilator wywala takie błędy :
make pisze:src/gui.cpp: In function ?void Gui::ShowNotification(std::string, std::string, Notify::Urgency)?:
src/gui.cpp:111: error: cannot convert ?Notify::Notification? to ?Notify::Notification*? in assignment
Oto mój kod:
Kod: Zaznacz cały
void ShowNotification(std::string name, std::string message, Notify::Urgency urgency)
{
GError *error = NULL]
Odp: [C++] [Libnotifymm] * w deklaracji
: 06 lut 2010, 10:55
autor: Hauleth
Wróć do kursu C++ i potem przyjdź tu jeszcze raz.
Odp: [C++] [Libnotifymm] * w deklaracji
: 06 lut 2010, 16:02
autor: bart13
A nie możesz popostu powiedzieć co zrobiłem źle? Bo tak troche nie chce mi się czytać calego kursu c++.
Odp: [C++] [Libnotifymm] * w deklaracji
: 06 lut 2010, 17:25
autor: Hauleth
Poczytaj o wskaźnikach, potem przeczytaj jakie tam masz błędy i będziesz wiedział co masz źle.
Odp: [C++] [Libnotifymm] * w deklaracji
: 07 lut 2010, 16:13
autor: bart13
Właśnie w tym problem, że jak robię tak jak ma być to mi podczas kompilacji wywala:
make pisze:src/gui.cpp:84: warning: taking address of temporary
A gdy uruchomię program wywala:
program pisze:(eoserv-debug:11828): libnotify-CRITICAL **: notify_notification_attach_to_status_icon: assertion `NOTIFY_IS_NOTIFICATION(notification)' failed
(eoserv-debug:11828): libnotify-CRITICAL **: notify_notification_set_timeout: assertion `notification != NULL' failed
(eoserv-debug:11828): libnotify-CRITICAL **: notify_notification_set_category: assertion `notification != NULL' failed
(eoserv-debug:11828): libnotify-CRITICAL **: notify_notification_set_urgency: assertion `notification != NULL' failed
(eoserv-debug:11828): libnotify-CRITICAL **: notify_notification_show: assertion `notification != NULL' failed
I nie wyświetla powiadomienia. Da sie coś z tym zrobić?
Odp: [C++] [Libnotifymm] * w deklaracji
: 07 lut 2010, 16:30
autor: Hauleth
bo coś źle robisz, bo pobierasz wartość tymczasową.
Odp: [C++] [Libnotifymm] * w deklaracji
: 07 lut 2010, 21:29
autor: bart13
Kod: Zaznacz cały
void ShowNotification(std::string name, std::string message, Notify::Urgency urgency)
{
/*GError *error = NULL;
Notify::Notification* notification;
// create a new notification
notification = &Notify::Notification::Notification(name, message, "/home/bartek/Desktop/icon.png");
// attach status icon to the notification
notification->attach_to_status_icon(StatusIcon2);
// set the timeout of the notification to 3 secs
notification->set_timeout(3000);
// set the category so as to tell what kind it is
notification->set_category("eoserv");
// set the urgency level of the notification
notification->set_urgency(Notify::URGENCY_LOW);
notification->show();*/
}
To moj kod. Co robie zle?
Odp: [C++] [Libnotifymm] * w deklaracji
: 08 lut 2010, 00:45
autor: adrian5632
Kod: Zaznacz cały
&Notify::Notification::Notification(name, message, "/home/bartek/Desktop/icon.png");
A od kiedy to się w ten sposób konstruktorów używa dla obiektów na stercie?? Przeczytaj naprawdę o wskaźnikach w C++...