Gsv::buffer 错误

Gsv::buffer error

在我的 c++ 项目中,我想使用来自 GTKsourceview 库的 Gsv::buffer。 我这样声明我的缓冲区:

Glib::RefPtr<Gsv::Buffer> buffer;

我创建它:

buffer->create();

但是当我想使用一些继承自 Gtk::buffer 的功能时:

 buffer->set_text("somethings");

可执行文件退出并且return:

Erreur de segmentation (core dumped)

有什么问题?

感谢您的帮助

你创建了一个指针,但实际上并没有让它指向任何地方。本质上,buffer 是一个空指针。

来自 the RefPtr default constructor refernece:

Afterwards it will be null and use of -> will cause a segmentation fault.

您需要显式创建指向的对象,使用 static Gsv::Buffer::create 函数,例如例如

Glib::RefPtr<Gsv::Buffer> buffer = Gsv::Buffer::create();