Здравствуйте, гость ( Вход | Регистрация )
Phoenix_nsk | Дата 14.3.2011, 16:39 |
Мда, что-то на специализированом ресурсе не много желающих поразбираться в проблеме... Собственно до чего я докопал... Проблема в сборке Qt, я его пересобираю по вот этой инструкции: Сборка Qt без зависимостей (MS Visual Studio) И на выходе получаю вроде бы как работающую сборку, но оказалось что нет. Плюсы сборки: можно собирать приложение (релиз) с ключом MT, тогда не нужно таскать с собой никаких dll, кроме Qt'шных, а так по умолчанию стоит MD и есть системы, в которых почему-то приложение не запускается, система пишет, что оно неверно сконфигурировано и поможет только переустановка. |
|
Phoenix_nsk | Дата 13.3.2011, 8:47 |
Это происходит при одном и том же действии - нажатии клавиши, но в Qt файлах я оказываюсь порой в разных, но итог один и тот же: ВСЁ ПРИХОДИТ ВОТ СЮДА (dbgheap.c) при debug сборке _ASSERTE(_CrtIsValidHeapPointer(pUserData)); У QTreeWidget есть ещё метод, видимо он и вызывается при нажатии клавиши вызов keyboardSearch("str"); тоже приводит к таким последствиям. -------------------------------------------------------------------- Может быть у кого-нить есть возможность скомпилить мой примерчик и посмотреть у себя что произойдёт? |
|
Rocky | Дата 12.3.2011, 22:58 |
Если его же скомпилировать из под вижака (2008), где Qt 4.7.1 - падает. При пошаговом выполнении на какой строчке валится? Может бага какая в кьюте => есть попробовать Qt Creator + 4.7.1 + win Seven? Или vs + 4.7.2 + win Seven? (4.7.2 это bugfix по сути). А если попробовать так
? |
|
Phoenix_nsk | Дата 12.3.2011, 19:34 |
Есть у кого-нить предположения по этому поводу? | |
Phoenix_nsk | Дата 12.3.2011, 18:31 |
Есть объект типа иерархическое дерево (QTreeWidget). При нажимании буквенных клавиш должен осуществляться переход на совпадающую ветку (по умолчанию). Этот момент мною никак не изменялся, поэтому очень сильно удивляет следующее: "ОС Windows имициировала точку останова в conf_dev.exe. Это может быть вызвано повреждением кучи и указывает на ошибку в conf_dev.exe или в одной из загруженных им DLL. Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит conf_dev.exe" Это происходит в debug на win7, release же вообще падает. Что ещё боле странно - на winXP всё работает нормально, т.е. переходит к нужному элементу. Клавиши стрелочки работают, исключение происходит только на буквенных. Debug после остановки открывает qregion.cpp и указывает на последнюю строчку в функции: Раскрывающийся текст
Qt 4.7.1 ------------------------------------------------------------------------------------------------------ Решил провести тест и написал простой код: Раскрывающийся текст
Скомпилированное под Qt Creator (4.7.0) работает как надо, т.е. при нажатии кнопок переходит на элемент Если его же скомпилировать из под вижака (2008), где Qt 4.7.1 - падает. Что это вообще такое, с чем связано? И безусловно самое важное - как обойти? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.5.2024, 4:16 |