Terminate wird aufgerufen, nachdem eine Instanz von „char const*“ ausgelöst wurde.C++

Programme in C++. Entwicklerforum
Anonymous
 Terminate wird aufgerufen, nachdem eine Instanz von „char const*“ ausgelöst wurde.

Post by Anonymous »

Ich habe eine einfache Steganographie-Bibliothek erstellt und versuche, eine kleine Qt 5.0.2-App zu erstellen, um sie zu testen. Es besteht aus zwei TextEdits, die zum Speichern und Anzeigen der Pfadnamen verwendet werden, und zwei Schaltflächen, die einen Dateidialog öffnen, um die Dateien TXT und BMP auszuwählen, damit Ersteres in Letzteres „eingebettet“ werden kann.
Aber wenn ich auf die Schaltfläche „Generieren“ klicke, wird „Terminate aufgerufen, nachdem eine Instanz von char const* ausgelöst wurde*“ angezeigt.

Code: Select all

void MainWindow::on_generate_clicked()
{
BmpFile bm(MainWindow::bmpName);
char *outputFile = "test1.bmp";

if( bm.hide(MainWindow::bmpName, MainWindow::txtName, outputFile) == 0 )
{
printf("Hidding done.\n");
}
else
{
printf("Error!");
}
}
ist der Qt-Slot, der den Fehler auslöst.

Code: Select all

void MainWindow::on_selFile_clicked()
{
QString txtname(MainWindow::txtName);
txtname = QFileDialog::getOpenFileName(this, tr("Open file"),"",tr("Files (*.txt)"));
ui->fileBox->setText(txtname);
QByteArray ba = txtname.toLocal8Bit();
MainWindow::txtName = ba.data();
}

void MainWindow::on_selBitmap_clicked()
{
QString bmpname=(MainWindow::bmpName);
bmpname = QFileDialog::getOpenFileName(this, tr("Open file"),"",tr("Files (*.bmp)"));
ui->bmpBox->setText(bmpname);
QByteArray ba = bmpname.toLocal8Bit();
MainWindow::bmpName = ba.data();
}
sind die beiden Slots, die die beiden Dateien verarbeiten und speichern
Und das ist die Bibliothek.
Ich habe das Gefühl, dass es etwas mit der Konvertierung in einen QString und zurück zu tun hat, bin mir aber nicht sicher.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post