Russian Qt Forum

Qt => Общие вопросы => Тема начата: noname.pl от Март 22, 2007, 14:29



Название: странная ошибка :confused:
Отправлено: noname.pl от Март 22, 2007, 14:29
Код:

ftp_file.setFileName("price-list.csv");
if (!ftp_file.open(QIODevice::WriteOnly)) {
    QMessageBox::warning(this, tr("Sales Pro"),
                         tr("Cannot write file %1\n%2.")
.arg(ftp_file.fileName())
                         .arg(ftp_file.errorString()));
    return;
  }
ftp.connectToHost("ftp.trolltech.com");
ftp.login("digitaction", "alienclaster");
ftp.get("price-list.csv", &ftp_file);
ftp.close();

Пример из книги. Компилируется. Но во время исполнения такая херь вылазит http://img160.imageshack.us/my.php?image=errorkd7.png

Как побороть? Спасибо.


Название: странная ошибка :confused:
Отправлено: danius от Март 22, 2007, 14:38
А где объявления ftp_file, ftp?


Название: странная ошибка :confused:
Отправлено: noname.pl от Март 22, 2007, 15:20
в классе, в котором объявлен этот метод. если бы не было объявлено - не компилировалось бы. я ж написал, что компилится.


Название: странная ошибка :confused:
Отправлено: Dendy от Март 22, 2007, 19:04
Нажимаешь "Прервать" и идёшь вверх по стеку вызовов.


Название: странная ошибка :confused:
Отправлено: Mikhail от Март 22, 2007, 19:06
Цитировать

в классе, в котором объявлен этот метод. если бы не было объявлено - не компилировалось бы. я ж написал, что компилится.


Компилится но не выполняется. А это значит, что с объявлением переменных все в порядке а с инициализацией беда. Нет инициализации либо ftp_file, либо  ftp.

Если не понял посмотри пример: QTDIR/examples/network/ftp.

void FtpWindow::downloadFile()
{
    QString fileName = fileList->currentItem()->text();

    if (QFile::exists(fileName)) {
        QMessageBox::information(this, tr("FTP"),
                                 tr("There already exists a file called %1 in "
                                    "the current directory.")
                                 .arg(fileName));
        return;
    }

    file = new QFile(fileName);
    if (!file->open(QIODevice::WriteOnly)) {
        QMessageBox::information(this, tr("FTP"),
                                 tr("Unable to save the file %1: %2.")
                                 .arg(fileName).arg(file->errorString()));
        delete file;
        return;
    }

    ftp->get(fileList->currentItem()->text(), file);

    progressDialog->setLabelText(tr("Downloading %1...").arg(fileName));
    progressDialog->show();
    downloadButton->setEnabled(false);
}


Название: странная ошибка :confused:
Отправлено: noname.pl от Март 22, 2007, 22:08
2Mikhail, с этого примера я и переделывал. Какой-то тупняк. И программа выполняется. По закрытии главное окна такая мессага.
2Dendy, попробую, не уверен что поможет.


Название: странная ошибка :confused:
Отправлено: Mikhail от Март 23, 2007, 08:17
Если по закрытии лавного окна, то это значит, что твой деструктор главного окна пытается удалить уже удаленный объект. Посмотри где ты ручками сам удаляешь объекты. Это ошибка в понимании С++, а не особенности QT.