Ich lerne nur über gtkmm für C++. Ich habe Probleme, einen einfachen Textpuffer zum Hinzufügen einer neuen Textzeile zu erhalten. Ich habe eine Klasse namens OutputBox, die eine HBox mit einem TextViewer (genannt Nachrichten) und einem TextBuffer (genannt TextBuffer) darin ist.Segfault beim Aufruf von Gtkmm textBuffer-> Einfügen
Hier ist eine kleine chunck der OutputBox Klasse:
OutputBox::OutputBox() {
textBuffer = messages.get_buffer();
};
void OutputBox::addText(string newText) {
textBuffer->insert(textBuffer->begin(), newText);
};
ich jetzt erwarten, dass, wenn ich einen String in addText passieren, wird die neue Zeichenfolge in den Puffer hinzugefügt werden, aber stattdessen bekomme ich einen seg Fehler .
Nachdem es durch gdb läuft, sehe ich, dass der Fehler von den gtkmm Bibliotheken kommt hier:
template <class T_CppObject> inline
T_CppObject* RefPtr<T_CppObject>::operator->() const
{
return pCppObject_;
}
Ich bin nicht wirklich sicher, was das mich entweder sagt. Ich nehme an, dass ich die Klasse falsch verwende.