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++...