使用GVariant向另一个进程发送指针



我目前正在使用webkit2gtk开发一个简单的浏览器。在webkit2gtk中,所有与DOM相关的操作都是在名为WebProcess的单独进程中完成的。

我在UI流程中创建了一个GTKWidget。我需要将GTKWidget结构传递给WebProcess。我们能用GVariant吗?

我读过GVariant api。我可以使用GVariant发送字符串、整数和其他基本类型。但是我们可以使用GVariant发送对象吗?

因此,我们必须区分您的标题和问题。

首先您的标题:

发送指向另一进程的指针

是的,你可以这样做(指针通常可以转换为整数类型),但指针总是特定于一个人的进程内存——接收进程无法访问它,所以指针显示为空(你会遇到分段错误),或者更糟的是,指向其他对象(你的程序运行时数据错误)。

但是我们可以使用GVariant发送对象吗?

一般来说,不会。你不能查看对象内部,所以它们可能包含指针。请参阅我上面的评论。

然而,许多对象实际上在没有指针的情况下工作,因此类型信息和属于对象的内存足以在接收器端"重新创建"它,只需将接收到的内存转换为您所知道的对象的形状即可。然而,这是非常特定于对象的。

您可能会喜欢阅读序列化

相关内容

  • 没有找到相关文章

最新更新