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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtCreator и Windows2000  (Прочитано 7419 раз)
SABROG
Гость
« : Март 04, 2009, 14:58 »

Толи я не умею пользоваться таск-трекером троллей, толи он глючит. Создал баг-репорт, а номер ему не присвоился и через поиск он не находится. В общем пришел поплакаться к вам, не могу в себе держать Улыбающийся

Проблема в следующем. Какую бы я версию QtCreator'a не качал она всегда крашится (Access Violation по нулевому адресу) на моем рабочем компьютере. Он крашился со 100% гарантией при попытке создать новый проект консольного приложения.

Причем баг было сложно найти поначалу, т.к. gdb не выдавал адрес где это происходило. Воспользовался ollydbg вместо gdb и нашел место в QtGui4.dll:

Код
ASM
65385D5F   E8 7CEBD5FF      CALL QtGui4.??0QPainter@@QAE@PAVQPaintDevice@@@Z
65385D64   C74424 38 000000>MOV DWORD PTR SS:[ESP+38],0
65385D6C   8B43 10          MOV EAX,DWORD PTR DS:[EBX+10]
65385D6F   8B70 1C          MOV ESI,DWORD PTR DS:[EAX+1C]
65385D72   8B78 18          MOV EDI,DWORD PTR DS:[EAX+18]
65385D75   2B70 14          SUB ESI,DWORD PTR DS:[EAX+14]
65385D78   2B78 10          SUB EDI,DWORD PTR DS:[EAX+10]
65385D7B   68 3C4A5A65      PUSH QtGui4.655A4A3C                                         ; UNICODE "Navigation"
65385D80   6A 00            PUSH 0
65385D82   46               INC ESI
65385D83   47               INC EDI
65385D84   FF15 0CBF6D65    CALL DWORD PTR DS:[656DBF0C]
 

Вызов на последней строке приводил к AV, т.к. по адресу DS:[656DBF0C] был 0.
Начал искать где в исходниках есть строка "Navigation" и наткнулся на qwizard_win.cpp. Т.е. это относится к классу QWizard и, я так понимаю, именно он используется при выборе создания нового проекта в QtCreator'e. Нашел очень похожие строки:

Код
C++ (Qt)
void QVistaBackButton::paintEvent(QPaintEvent *)
{
   QPainter p(this);
   QRect r = rect();
   HANDLE theme = pOpenThemeData(0, L"Navigation");
   //RECT rect;
   RECT clipRect;
   int xoffset = QWidget::mapToParent(r.topLeft()).x();
   int yoffset = QWidget::mapToParent(r.topLeft()).y();
 
   clipRect.top = r.top() + yoffset;
   clipRect.bottom = r.bottom() + yoffset;
   clipRect.left = r.left() + xoffset;
   clipRect.right = r.right()  + xoffset;
 
   int state = WIZ_NAV_BB_NORMAL;
   if (!isEnabled())
       state = WIZ_NAV_BB_DISABLED;
   else if (isDown())
       state = WIZ_NAV_BB_PRESSED;
   else if (underMouse())
       state = WIZ_NAV_BB_HOT;
 
  pDrawThemeBackground(theme, p.paintEngine()->getDC(), WIZ_NAV_BACKBUTTON, state, &clipRect, &clipRect);
}
 
В этом файле вообще все методы Vist'овские.

Теперь вопрос. Какого хрена то Vista на Windows2000?
Записан
Wicked_Digger
Гость
« Ответ #1 : Март 04, 2009, 15:10 »

Надо подождать, они баг проверят и если он действительно имеет место быть, внесут в базу, об этом будет соответствующее письмо. Кстати, формулеровка может измениться.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Март 04, 2009, 15:34 »

2 SABROG: Попробуй собрать из исходников

Взгляни также на вот это Qt Creator Supported Platforms
« Последнее редактирование: Март 04, 2009, 15:40 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #3 : Март 04, 2009, 16:58 »

Цитировать
Взгляни также на вот это Qt Creator Supported Platforms
Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?  Непонимающий

ЗЫ: хотя может потому, что я его из исходников собрал?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Март 04, 2009, 17:22 »

Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?
ЗЫ: хотя может потому, что я его из исходников собрал?

Цитировать
Qt Creator is available in binary packages for the following platforms:
Windows XP Service Pack 2
Windows Vista
...
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IMPOMEZIA
Гость
« Ответ #5 : Март 04, 2009, 19:39 »

Цитировать
Взгляни также на вот это Qt Creator Supported Platforms
Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?  Непонимающий
Так это что получается QWizard не работает в Win2000?
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #6 : Март 04, 2009, 20:09 »

Может там (в Win2000) supported library от Microsoft кривые?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #7 : Март 04, 2009, 21:29 »

Так это что получается QWizard не работает в Win2000?

Почемуже, работает. OS2 собрал из исходников и все ОК.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
SABROG
Гость
« Ответ #8 : Март 04, 2009, 22:53 »

Только если я правильно все понимаю, то все - кирдык поддержке Windows9*,NT. Винде теперь надо быть не младше XP: http://doc.trolltech.com/4.5/supported-platforms.html
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #9 : Март 05, 2009, 11:52 »

Только если я правильно все понимаю, то все - кирдык поддержке Windows9*,NT. Винде теперь надо быть не младше XP: http://doc.trolltech.com/4.5/supported-platforms.html

Я ненашел таких фраз что 2000 винда не поддерживается. Собирай спокойно все из исходников и будет тебе счастье
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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