Вот проблема:
Большое, сложное приложение, в основе лежит QMainWindow.
Под линуксом всё пашет уже давно. Перевёл под win32 - начались траблы.
Делаем ПРОСТЕЙШИЙ вызов своего AboutDialog.
void myServerWindow::helpAbout()
{
AboutDialog dlg(this);
dlg.exec();
//для отслеживания ошибки
QMessageBox::warning(this, "Step", "debug", QMessageBox::Ok, 0, 0);
return;
}
Что получается: сразу после вывода эбаута жмём ОК, потом показывается "debug", а потом приложение падает. Стек показывает чёрти куда.
->00966239()
dddddddd()
Судя по всем признакам, как-то не корректно срабатывает то ли деструктор, то ли очистка мусора. Поскольку диалог имеет родителя (parent который this, т.е. основное окно, либо, если NULL, то это qApp), то значит, что-то там не так работает - похоже, parent делает delete уже несуществующему объекту. Но все примеры от самих Qt работают нормально, только у меня хрень какая-то.
Из той же оперы: проверялись вызовы QFileDialog(0,0, this). Как только закрываешь приложение, идёт крах. Если QFileDialog не вызывать - всё нормально.
Компиляция: debug multithread dll, win32, 3.3.3 коммерческий.
Я уже в трансе, тихонько стучусь головой об стол. Помогите, пожалуйста.[/code]