crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Отключение исключения
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Прохожий Дата 3.4.2009, 16:26
 
Цитата(AD @ 2.4.2009, 22:29) *
За обновление надо платить! Не так дорого, но и недешево! ;)


Что за ерунда??? Если срок лицензии не истек, все обновления бесплатны! Если истек - плати деньги, продлевай лицензию
LE0N Дата 2.4.2009, 22:40
 
Цитата
Ну если Вы готовы помочь, то вот код. Что дальше? Разбирать баги библиотеки, согласитесь, что этим заниматься - не самое благодарное занятие?

Ну вы же хотели узнать в чём проблема?
Скажу вам по секрету, но проблему ищут в коде, а не выстраивают предположения.


Цитата
effectiveSpacer

Ищите откуда эта байда появляется и что она означает.
Вы выставляете spacing + effectiveSpacer откуда то берётся. Вот вам и ошибка.
AD Дата 2.4.2009, 22:29
 
Цитата(LE0N @ 2.4.2009, 23:19) *
Внутрь того, где возникла ошибка посмотреть слабо ? Наверняка ведь assert ы выставленны. Или нам нужно, как и тебе, на кофейной гуще гадать? )
ЗЫ. Вот не понятно, почему все сидят на древних версиях :)
Я так понял - потому, что они коммерческие. НО...Троли когда продают, не обеспечивают поддержкой обнавлениями????

За обновление надо платить! Не так дорого, но и недешево! ;) В стране кризис, в фирме - тоже!

Вы сможете помочь исправить код библиотеки? :)
qglobal.cpp
#if defined(Q_CC_MSVC) && defined(QT_DEBUG) && defined(_DEBUG) && defined(_CRT_ERROR)
        // get the current report mode
        int reportMode = _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW);
        _CrtSetReportMode(_CRT_ERROR, reportMode);
        int ret = _CrtDbgReport(_CRT_ERROR, __FILE__, __LINE__, QT_VERSION_STR, buf);
        if (ret == 0  && reportMode & _CRTDBG_MODE_WNDW)
            return; // ignore
        else if (ret == 1)
            _CrtDbgBreak();
#endif




void qFatal(const char *msg, ...)
{
    char buf[QT_BUFFER_LENGTH];
    buf[QT_BUFFER_LENGTH - 1] = '\0';
    va_list ap;
    va_start(ap, msg); // use variable arg list
    if (msg)
        qvsnprintf(buf, QT_BUFFER_LENGTH - 1, msg, ap);
    va_end(ap);

    qt_message_output(QtFatalMsg, buf);
}

void qt_assert(const char *assertion, const char *file, int line)
{
    qFatal("ASSERT: \"%s\" in file %s, line %d", assertion, file, line);
}


qlayoutengine_p.h
int effectiveSpacer(int uniformSpacer) const {
        Q_ASSERT(uniformSpacer >= 0 || spacing >= 0);
        return (uniformSpacer >= 0) ? uniformSpacer : spacing;
    }

Ну если Вы готовы помочь, то вот код. Что дальше? Разбирать баги библиотеки, согласитесь, что этим заниматься - не самое благодарное занятие?
LE0N Дата 2.4.2009, 22:19
  Внутрь того, где возникла ошибка посмотреть слабо ? Наверняка ведь assert ы выставленны. Или нам нужно, как и тебе, на кофейной гуще гадать? )
ЗЫ. Вот не понятно, почему все сидят на древних версиях :)
Я так понял - потому, что они коммерческие. НО...Троли когда продают, не обеспечивают поддержкой обнавлениями????
AD Дата 2.4.2009, 22:15
  кто-нибудь прокомментирует данную ситуацию? Ошибка возникала только при открытии прикрепляемого виджета в дебаг-режиме. Сейчас данной ошибки нет.
Судя по предыдущим постам в этой теме, моя идея, что у троллей в библиотеке 4.3.2 двойная ошибка, что и привело к ее исправлению! У кого-то есть еще идеи?
AD Дата 2.4.2009, 14:54
  Хотите верьте, хотите нет, но при добавлении еще одного виджета эта ошибка самоликвидировалась! Каким образом? Видимо, это известно только Богу и троллям!
Andrew Selivanov Дата 8.10.2008, 13:14
 
Цитата(AD @ 7.10.2008, 14:12) *
Насколько я понял, мне придется с этим сообщением смириться? Так что-ли?

Судя по всему это баг и он исправлен в следующей версии Qt. Или смириться или проапдейтиться.
AD Дата 7.10.2008, 13:12
  Насколько я понял, мне придется с этим сообщением смириться? Так что-ли?
Andrew Selivanov Дата 7.10.2008, 12:46
 
Цитата(AD @ 7.10.2008, 10:32) *
У меня очередной вопрос! :)

[attachment=267:err_message.JPG]

Как и где правильно отключить следующее падение программы: падает только в дебаг-режиме. При этом если нажать "Ignore", то он продолжит нормально работать. В релизе такой ошибки совсем нет. Как отключить это исключение и где?


http://www.google.com/search?hl=ru&cli...1%D0%BA&lr=

Думаю это оно просто в другом месте:
http://trolltech.com/developer/task-tracke...y&id=179713

History
2007-09-19 19:21 - Entry created: Task status changed to 'Open', Resolution set to 'Pending', Version found set to '4.3.1', Version for fix set to 'Not scheduled', Priority changed to 'No Priority'
2007-09-21 11:24 - Version for fix set to '4.3.3'
2007-09-21 11:24 - Priority changed to '1 - Highest'
2007-09-21 11:32 - Task status changed to 'Active'
2007-09-24 11:42 - Resolution set to 'Fixed'
2007-09-24 11:42 - Task status changed to 'Closed'
AD Дата 7.10.2008, 12:24
  Не знаю я, что они в дебаг-версию вшили, но ломается дебаг-версия вот из-за этой строки (если нажать - Игнорировать - все прекрасно работает):
innerLayout = new QGridLayout(centralWidget);


// Инициализация и установка нужных размеров окна
void Ui_VerticalGraphicClass::setupUi(QDockWidget *ReliefClass)
{
    if (ReliefClass -> objectName().isEmpty())
        ReliefClass -> setObjectName(QString::fromUtf8("ReliefClass"));
    ReliefClass -> resize(924, 163);

    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(ReliefClass -> sizePolicy().hasHeightForWidth());
    ReliefClass -> setSizePolicy(sizePolicy);

    gridLayout = new QGridLayout(ReliefClass);
    gridLayout -> setSpacing(6);
    gridLayout -> setMargin(11);
    gridLayout -> setObjectName(QString::fromUtf8("gridLayout"));

    innerWindow = new QMainWindow(ReliefClass, Qt::Widget);
    innerWindow -> setObjectName(QString::fromUtf8("innerWindow"));
    innerWindow -> setWindowFlags(Qt::SubWindow);
    sizePolicy.setHeightForWidth(innerWindow -> sizePolicy().hasHeightForWidth());
    innerWindow -> setSizePolicy(sizePolicy);
    innerWindow -> setSizeIncrement(QSize(1, 1));
    gridLayout -> addWidget(innerWindow, 0, 0, 1, 1);
    ReliefClass -> setWidget(innerWindow);

    centralWidget = new QWidget(innerWindow);
    centralWidget -> setObjectName(QString::fromUtf8("centralWidget"));
    sizePolicy.setHeightForWidth(centralWidget -> sizePolicy().hasHeightForWidth());

    innerLayout = new QGridLayout(centralWidget);
    innerLayout -> setSpacing(6);
    innerLayout -> setMargin(11);
    innerLayout -> setObjectName(QString::fromUtf8("verticalLayout"));

    displayRelief = new QWidget(centralWidget);
    displayRelief -> setObjectName(QString::fromUtf8("displayRelief"));
    sizePolicy.setHeightForWidth(displayRelief -> sizePolicy().hasHeightForWidth());
    innerLayout -> addWidget(displayRelief, 0, 0, 1, 1);

    scroll = new QScrollBar(centralWidget);
    scroll -> setObjectName(QString::fromUtf8("scroll"));
    scroll -> setOrientation(Qt::Horizontal);
    sizePolicy.setHeightForWidth(scroll -> sizePolicy().hasHeightForWidth());
    innerLayout -> addWidget(scroll, 1, 0, 1, 1);

    toolBar = new QToolBar(centralWidget);
    toolBar -> setObjectName(QString::fromUtf8("toolBar"));
    toolBar -> setToolButtonStyle(Qt::ToolButtonIconOnly);
    toolBar -> setOrientation(Qt::Vertical);
    toolBar -> setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    toolBar -> setVisible(true);

    innerWindow -> addToolBar(Qt::LeftToolBarArea, toolBar);
    innerWindow -> setCentralWidget(centralWidget);

    retranslateUi(ReliefClass);
    QMetaObject::connectSlotsByName(ReliefClass);
}


Уже мозги сломал, пытаясь понять эту хню. Почему ломается? Несмертельно, в дебаг-версии это заколебало.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 20:15