Как создать GVariant* для передачи в g_variant_iter_new?

Следующего простого кода достаточно, чтобы воспроизвести мою ошибку.

      #include<gio/gio.h>

int main()
{
    GVariantIter *Iter;
    const gchar* s = "[('appname', uint64 size, uint64 field, false)]";
    GVariant* up = g_variant_new_string(s);
    Iter = g_variant_iter_new(up);
    return 0;
}

Это приводит к:

GLib:ОШИБКА:../../../glib/gvariant-serialiser.c:1367:g_variant_serialized_n_children: код не должен быть достигнут Выручайте! GLib:ERROR:../../../glib/gvariant-serialiser.c:1367:g_variant_serialized_n_children: код не должен быть достигнут Прервано

Что мне не хватает? Документация несколько расплывчата .

g_variant_new_string ()

      GVariant *          g_variant_new_string                (const gchar *string);
Creates a string GVariant with the contents of string.

g_variant_iter_new ()

      GVariantIter *      g_variant_iter_new                  (GVariant *value);
Creates a heap-allocated GVariantIter for iterating over the items in value.

0 ответов

Другие вопросы по тегам