Russian Qt Forum
Ноябрь 24, 2024, 03:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Си и dbus  (Прочитано 2561 раз)
Steven_Orko
Гость
« : Октябрь 21, 2010, 19:49 »

Кто-нибудь использовал в своих проектах DBus???
У меня непонятная проблемма с двумя функциями.
Вот этот код всегда пишет в консоль "Message is corrupted".
Что я не так делаю?

Код
C
int main (int argc, char *argv[])
{
DBusError dbusError;
char* marshalled_data_p = 0;
int len = 0;
DBusMessage* msg = dbus_message_new_signal("/org/freedesktop/DBus", "org.freedesktop.DBus", "method");
dbus_error_init(&dbusError);
dbus_message_marshal(msg, &marshalled_data_p, &len);
dbus_message_demarshal(marshalled_data_p, len, &dbusError);
if (dbus_error_is_set(&dbusError)) printf("%s\n", dbusError.message);
dbus_error_free(&dbusError);
return 0;
}
 
« Последнее редактирование: Октябрь 21, 2010, 20:30 от Steven_Orko » Записан
Steven_Orko
Гость
« Ответ #1 : Октябрь 21, 2010, 22:45 »

Пишу для тех, кто столкнется с такой проблемой тоже.
В общем, я совершенно случайно решил ткнуть пальцем в небо. И я угадал. Оказывается необходимо сообщению установить серийник. Вот такой код будет работать.
Код
C
int main (int argc, char *argv[])
{
DBusError dbusError;
char* marshalled_data_p = 0;
int len = 0;
DBusMessage* msg = dbus_message_new_signal("/org/freedesktop/DBus", "org.freedesktop.DBus", "method");
dbus_message_set_serial(mgs, 0x41);
dbus_error_init(&dbusError);
dbus_message_marshal(msg, &marshalled_data_p, &len);
dbus_message_demarshal(marshalled_data_p, len, &dbusError);
if (dbus_error_is_set(&dbusError)) printf("Error - %s\n", dbusError.message);
else printf("Success");
dbus_error_free(&dbusError);
return 0;
}
Кстати, пальцем помогла ткнуть жена. ))))))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.141 секунд. Запросов: 21.