C DBus: выдает ошибку при вызове метода, возвращающего строку - PullRequest
0 голосов
/ 19 сентября 2010

Не могу, пожалуйста, кто-нибудь сказать мне, почему код ниже падает при выполнении (компиляция идет нормально) в повернутой среде X на 90 влево.

    DBusGConnection *connection;
    DBusGProxy *proxy;
    GError *error = NULL;
    gchar *name = NULL;

    g_type_init ();

    //Get the connection and ensure the name is not used yet
    connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
    if (connection == NULL) {
            g_warning ("Failed to make connection to system bus: %s",
                            error->message);
            g_error_free (error);
            exit(1);
    }

    proxy = dbus_g_proxy_new_for_name (connection,
                    "to.some.Service",
                    "/to/some/Object",
                    "to.some.Interface" );

    dbus_g_proxy_call(proxy, "getStatus", &error, G_TYPE_INVALID, G_TYPE_STRING, &name, G_TYPE_INVALID);
    printf("Name is: %s\n", name);
    return 0;

1 Ответ

0 голосов
/ 19 сентября 2010

Получил ответ.На самом деле служба работает в Python, и возвращаемое значение не было строкой ... как следствие того, что в Python нет сильных типов.Таким образом, возврат str (status), но без статуса, решил мою проблему.

...