如何在c++程序中使用自己的GObject实例

How to use my own GObject instace with C++ programs

本文关键字:自己的 GObject 实例 c++ 程序      更新时间:2023-10-16

我想知道如何使用我自己创建的GObject对象与我的c++代码。

我有一个用C编译的简单库,它定义了一个GObject对象,我想在我的c++代码中使用这个对象。

我在这里看到了一些例子http://developer.gnome.org/gtkmm-tutorial/3.0/sec-basics-gobj-and-wrap.html.en,那里的文档教如何从C GTK+ API函数获得一个Gobject对象实例。

我想做同样的事情,但使用从我的库中创建的对象。

谢谢。

你总是可以扩展他们的GObject类并将其用作包装器,但问题是GTK+库在内部使用GObject,我不知道为什么你想要替换它(它可能会抱怨你在某处重新定义了一个符号,或者不让你使用自定义对象作为参数调用任何方法,因为如果你扩展它,类型将不匹配)。

如果您想使用它作为包装器,您应该扩展GObject并编写一个构造函数,该构造函数接受GObject(以及您需要的任何其他东西),并在每次需要时简单地将GObject包装到您的自定义类中。