Russian Qt Forum

Qt => Общие вопросы => Тема начата: SABROG от Март 04, 2009, 14:58



Название: QtCreator и Windows2000
Отправлено: 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?


Название: Re: QtCreator и Windows2000
Отправлено: Wicked_Digger от Март 04, 2009, 15:10
Надо подождать, они баг проверят и если он действительно имеет место быть, внесут в базу, об этом будет соответствующее письмо. Кстати, формулеровка может измениться.


Название: Re: QtCreator и Windows2000
Отправлено: pastor от Март 04, 2009, 15:34
2 SABROG: Попробуй собрать из исходников

Взгляни также на вот это Qt Creator Supported Platforms (http://doc.trolltech.com/qtcreator-1.0/creator-supported-platforms.html)


Название: Re: QtCreator и Windows2000
Отправлено: OS2 от Март 04, 2009, 16:58
Цитировать
Взгляни также на вот это Qt Creator Supported Platforms
Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?  ???

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


Название: Re: QtCreator и Windows2000
Отправлено: pastor от Март 04, 2009, 17:22
Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?
ЗЫ: хотя может потому, что я его из исходников собрал?

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


Название: Re: QtCreator и Windows2000
Отправлено: IMPOMEZIA от Март 04, 2009, 19:39
Цитировать
Взгляни также на вот это Qt Creator Supported Platforms
Хм...и в прямь, Вин2000 в списке нет, как же он тогда у менято запустился?  ???
Так это что получается QWizard не работает в Win2000?


Название: Re: QtCreator и Windows2000
Отправлено: xokc от Март 04, 2009, 20:09
Может там (в Win2000) supported library от Microsoft кривые?


Название: Re: QtCreator и Windows2000
Отправлено: pastor от Март 04, 2009, 21:29
Так это что получается QWizard не работает в Win2000?

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


Название: Re: QtCreator и Windows2000
Отправлено: SABROG от Март 04, 2009, 22:53
Только если я правильно все понимаю, то все - кирдык поддержке Windows9*,NT. Винде теперь надо быть не младше XP: http://doc.trolltech.com/4.5/supported-platforms.html


Название: Re: QtCreator и Windows2000
Отправлено: pastor от Март 05, 2009, 11:52
Только если я правильно все понимаю, то все - кирдык поддержке Windows9*,NT. Винде теперь надо быть не младше XP: http://doc.trolltech.com/4.5/supported-platforms.html

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