Название: QObject::connect крешит на Windows Отправлено: names от Апрель 17, 2010, 18:55 Привет Qt гуру
Я стараюсь создать класс, который наследует QComboBox и обработать сигнал currentIndexChanged(int) Код: class ComboBox_impl : public QComboBox Под Мак ОС 10.6.2 работает отлично, а под Windows XP генерит исключение "Access denied" на строчке Код: connect(this, SIGNAL(currentIndexChanged(int)), SLOT(doProcessIndexChanged(int))); Версия Qt на Windows 4.6.2, VS 2008 Жду помощи, Н. Название: Re: QObject::connect крешит на Windows Отправлено: Авварон от Апрель 17, 2010, 19:10 выложи проект, воспроизводящий багу
кстати было бы неплохо вызвать коструктор базового класса, мало ли Название: Re: QObject::connect крешит на Windows Отправлено: names от Апрель 18, 2010, 10:57 Вот в том все и дело, что сам проект не могу... Вот простой тестовый проектик с таким классом работает, а рабочий, где этот класс в либе, которую подключает к себе прога не работает :-\
Название: Re: QObject::connect крешит на Windows Отправлено: Авварон от Апрель 18, 2010, 11:24 ну в этом коде с виду ошибок нет
что дебаггер показывает? потоки есть? Название: Re: QObject::connect крешит на Windows Отправлено: SABROG от Апрель 18, 2010, 11:31 Скорее всего дело не в connect, а в памяти. Либо стек закончился, либо где-то утечка памяти.
Название: Re: QObject::connect крешит на Windows Отправлено: Alex Custov от Апрель 18, 2010, 13:34 ты не вызывал родительский конструктор. Возможно, это влияет.
Код
Название: Re: QObject::connect крешит на Windows Отправлено: names от Апрель 19, 2010, 09:31 Вот сама еррора:
Unhandled exception at 0x6718c3d6 in minihost.exe: 0xC0000005: Access violation reading location 0x00000010. Название: Re: QObject::connect крешит на Windows Отправлено: Amigo_sa от Апрель 19, 2010, 11:10 Под Мак ОС 10.6.2 работает отлично, а под Windows XP генерит исключение "Access denied" на строчке наверное, из-за того, что не вызван базовый конструктор, this неопределен... но я неуверен, надо проверить.Код: connect(this, SIGNAL(currentIndexChanged(int)), SLOT(doProcessIndexChanged(int))); Версия Qt на Windows 4.6.2, VS 2008 Жду помощи, Н. Название: Re: QObject::connect крешит на Windows Отправлено: zenden от Апрель 19, 2010, 13:21 Вот сама еррора: Unhandled exception at 0x6718c3d6 in minihost.exe: 0xC0000005: Access violation reading location 0x00000010. банальное обращение к нулевому указателю. Уверен, что это ошибка в вашем коде, а не qt Название: Re: QObject::connect крешит на Windows Отправлено: johnny от Апрель 20, 2010, 13:16 ты не вызывал родительский конструктор. Возможно, это влияет. Родительский конструктор по умолчанию будет вызван автоматом Название: Re: QObject::connect крешит на Windows Отправлено: names от Май 13, 2010, 13:18 Либы поменял на те, которые на сайте нокии лежат и все заработало. У меня перед этим были собственноручно собранные ???
Название: Re: QObject::connect крешит на Windows Отправлено: niXman от Май 13, 2010, 13:26 не в тему конечно, но позвольте поинтересоваться. в чем смысл такой записи:
Цитировать public Q_SLOTS: ?спасибо. Название: Re: QObject::connect крешит на Windows Отправлено: pastor от Май 13, 2010, 16:58 не в тему конечно, но позвольте поинтересоваться. в чем смысл такой записи: Цитировать public Q_SLOTS: ?спасибо. Цитировать Q_SLOTS Use this macro to replace the slots keyword in class declarations, when you want to use Qt Signals and Slots with a 3rd party signal/slot mechanism. The macro is normally used when no_keywords is specified with the CONFIG variable in the .pro file, but it can be used even when no_keywords is not specified. |