在我的 c++ 项目中,我想使用 GTKsourceview 库中的 Gsv::buffer。我这样声明我的缓冲区:
Glib::RefPtr<Gsv::Buffer> buffer;
我创建它:
buffer->create();
但是当我想使用一些从 Gtk::buffer 继承的函数时:
buffer->set_text("somethings");
可执行退出并返回:
Erreur de segmentation(核心转储)
问题是什么?
谢谢你的帮助
在我的 c++ 项目中,我想使用 GTKsourceview 库中的 Gsv::buffer。我这样声明我的缓冲区:
Glib::RefPtr<Gsv::Buffer> buffer;
我创建它:
buffer->create();
但是当我想使用一些从 Gtk::buffer 继承的函数时:
buffer->set_text("somethings");
可执行退出并返回:
Erreur de segmentation(核心转储)
问题是什么?
谢谢你的帮助
您创建了一个指针,但实际上并没有让它指向任何地方。本质上buffer是一个空指针。
之后它将为空,使用 of
->将导致分段错误。
您需要使用该函数显式创建指向的对象,例如static Gsv::Buffer::create
Glib::RefPtr<Gsv::Buffer> buffer = Gsv::Buffer::create();