Russian Qt Forum
Ноябрь 18, 2024, 07:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: странная ошибка :confused:  (Прочитано 5754 раз)
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

Как побороть? Спасибо.
Записан
danius
Гость
« Ответ #1 : Март 22, 2007, 14:38 »

А где объявления ftp_file, ftp?
Записан
noname.pl
Гость
« Ответ #2 : Март 22, 2007, 15:20 »

в классе, в котором объявлен этот метод. если бы не было объявлено - не компилировалось бы. я ж написал, что компилится.
Записан
Dendy
Гость
« Ответ #3 : Март 22, 2007, 19:04 »

Нажимаешь "Прервать" и идёшь вверх по стеку вызовов.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #4 : Март 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);
}
Записан
noname.pl
Гость
« Ответ #5 : Март 22, 2007, 22:08 »

2Mikhail, с этого примера я и переделывал. Какой-то тупняк. И программа выполняется. По закрытии главное окна такая мессага.
2Dendy, попробую, не уверен что поможет.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #6 : Март 23, 2007, 08:17 »

Если по закрытии лавного окна, то это значит, что твой деструктор главного окна пытается удалить уже удаленный объект. Посмотри где ты ручками сам удаляешь объекты. Это ошибка в понимании С++, а не особенности QT.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 23.