问题标签 [glib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
288 浏览

c - GLib 原子和内存块

以下代码片段来自The Official GNOME 2 Developer's Guide

  • 这是否意味着每个原子都是 42 字节,每个“内存块”包含42 16 个原子,并且40000/16=2500在运行上述代码时会创建内存块?

  • 他们为什么在这里使用 gchar* ?运行时是否会发生从 gpointer (void*) 到 gchar* 的隐式转换data[i] = g_mem_chunk_alloc(my_chunk);

  • 如果上述陈述为真,则每个 gchar* 指向 42 字节的内存。那么如何访问特定原子的所有字节呢?会data[7]+41是一个可用的内存位置吗?


  • 当我尝试编译代码 gcc 产生此错误消息:

    error: storage size of ‘my_chunk’ isn’t known 怎么了?

0 投票
2 回答
1807 浏览

c - GLib 哈希表 - 指针

如果找到某个特定键,我正在尝试增加它的值。keys:values出于某种原因,当我从哈希表中转储所有内容时,我不断获取(指针)地址。

任何想法将不胜感激。

0 投票
1 回答
1276 浏览

c - 排序哈希表 Glib - qsort

我正在尝试按 id 对 GLib 哈希表进行排序,如下所示:

我只是不确定如何解决这个问题,因为GLib没有排序方法。我正在考虑使用 qsort 或 GCompareFunc

任何想法将不胜感激!

0 投票
3 回答
8427 浏览

c - 需要帮助使用 GIOService (GLib, Glib-GIO) 实现简单的套接字服务器

我正在学习使用 GLib 编写简单、高效的套接字服务器的基础知识。我正在试验 GSocketService。到目前为止,我似乎只能接受连接,但它们会立即关闭。从文档中我无法弄清楚我错过了哪一步。我希望有人可以为我阐明这一点。

运行以下命令时:

服务器的输出:

当前代码:

0 投票
1 回答
1197 浏览

c - Glib segfault g_free 哈希表

我不太清楚为什么如果我尝试释放数据会出现段错误。任何帮助将不胜感激。

0 投票
2 回答
1152 浏览

c++ - Glib::ustring 和日文字符

Glib::ustring 应该可以很好地与 UTF8 一起使用,但是在使用日文字符串时我遇到了问题。

如果你比较这两个字符串,“わたし”和“ワタシ”,使用 == 运算符或比较方法,它会回答这两个字符串是相等的。

我不明白为什么。Glib::ustring 是如何工作的?

我发现比较错误的唯一方法是比较不同大小的字符串。例如“海外わたわ”和“海外わた”。

很奇怪...

0 投票
1 回答
4828 浏览

glib - 如何在 GLib 中将整数转换为字符串?

我想在 GLib 中将整数值转换为字符串。是否有任何宏或函数可以实现?或者我可以将不同的数据类型存储在同一个双向链表中吗?

0 投票
4 回答
7222 浏览

c - Vala vapi 文件文档

我想使用 Vala 破解现有的基于 GLib 的 C 项目。

基本上,我正在做的是,在我的构建过程开始时,使用 valac 从我的 .vala 文件生成 .c 和 .h 文件,然后像任何 .c 或 .h 文件一样编译生成的文件。

这可能不是最好的方法,但在大多数情况下似乎工作正常。

我的问题是我很难从我的 Vala 代码中访问我现有的 C 代码。是否有捷径可寻?

我已经尝试编写自己的 .vapi 文件(我对 vala 附带的工具没有任何运气),但我找不到任何关于如何编写这些文件的体面文档。

有吗?我需要这些文件之一来调用现有的 C 代码吗?

0 投票
1 回答
1052 浏览

ubuntu - 如何编译需要更新版本 glib 的程序

我正在尝试在 Ubuntu 8.04 上编译 Webkit。但是当我运行 autogen.sh 时,我收到以下错误,说它需要更新版本的 glib。那么在不破坏我的操作系统其余部分的情况下安装 glib 的最安全方法是什么(因为其余部分需要 2.16 而 webkit 编译需要 2.21)?

0 投票
2 回答
1147 浏览

c++ - 在解决编译器错误时需要帮助:错误:从“int”到“GIOCondition”的无效转换

我有一个使用 GIO 的简单 cpp 文件。我已经删除了所有内容以显示我的编译错误:

这是我得到的错误:

这是完整的文件:

我已经看到其他使用 gio 的示例,并且在调用 G_IO_IN|G_IO_HUP 方面我正在做同样的事情。并且文档http://www.gtk.org/api/2.6/glib/glib-IO-Channels.html说我只需要包含,我做到了。

你能告诉我如何解决我的错误吗?

我能想到的一件事是我在 cpp 文件中执行此操作。但是 g_io_add_watch 是 ac 函数吗?

感谢您的任何帮助。我在这上面花了几个小时,但没有得到任何结果。