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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проект, собранный для Win CE, не работает на WinCE, но работает на Win Mobile  (Прочитано 8624 раз)
thedimitrius
Гость
« : Март 30, 2010, 11:56 »

Всем привет!
Есть железка на базе Samsung ARM920T-S3C2440A, операционная система windows ce version 5.00 build 1400.
На чистой системе в виртуалке установил Visual Studio 2008 и Windows CE 5.00 SDK. Затем скачал Qt embedded, сделал
configure -platform win32-msvc2008 -xplatform wince50standard-armv4i-msvc2008
setcepaths wince50standard-armv4i-msvc2008
nmake
Затем сделал проект в qt creator в другой виртуалке, проект скопировал на виртуалку, там сделал
qmake -tp vc
и получившийся проект откомпилировал в Visual Studio.
На железке не работает, зато работает на смартфоне под Windows Mobile 6.1 Professional и НЕ работает в эмуляторе WinMobile 6.1. Правда, на телефоне есть ещё приписка под версией:
ОС CE 5.2.21051 (сборка 21127.1.6.6)
Записан
ufna
Гость
« Ответ #1 : Март 30, 2010, 15:56 »

"не работает" - это какие симптомы?

Если железка у тебя это навигатор - то посмотри здесь, я уже описывал: http://ufna.ru/2010/03/23/pna-mod-qt-4-wince-build

вообще, для 5ой версии очень рекомендую именно MSVS 2005. Я уже не помню почему, но имелся с этим много, пришлось именно вернуться к этой версии.
Записан
thedimitrius
Гость
« Ответ #2 : Март 31, 2010, 21:49 »

Не работает - значит выдаёт окошко "<program_name> не является приложением windows ce"
Спасибо за совет, удивлён, что не нашёл эту стать сам. Завтра утром попробую=)
И - да, ты прав, программирую под навигатор, на задней наклейке Win CE _CORE_
« Последнее редактирование: Март 31, 2010, 22:01 от thedimitrius » Записан
ufna
Гость
« Ответ #3 : Март 31, 2010, 22:18 »

ничего удивительного - ее поисковики только вчера или позавчера проиндексировали Улыбающийся

еще особенность этих Embedded виндоусов в том, что там могут быть к тому же еще и не все компоненты. Практика показала, что чаще всего отсутствует aygshell.dll.
Записан
thedimitrius
Гость
« Ответ #4 : Апрель 01, 2010, 11:15 »

Итак-вести с фронтов=)
Компиляция прошла нормально, но линковщик ругается на
mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QWidget::dragEnterEvent(class QDragEnterEvent *)" (?dragEnterEvent@QWidget@@MAAXPAVQDragEnterEvent@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QWidget::dragMoveEvent(class QDragMoveEvent *)" (?dragMoveEvent@QWidget@@MAAXPAVQDragMoveEvent@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QWidget::dragLeaveEvent(class QDragLeaveEvent *)" (?dragLeaveEvent@QWidget@@MAAXPAVQDragLeaveEvent@@@Z)
mainwindow.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QWidget::dropEvent(class QDropEvent *)" (?dropEvent@QWidget@@MAAXPAVQDropEvent@@@Z)

Судя по всему, надо из configure всё же убрать -D QT_NO_DRAGANDDROP. Ща попробую пересобрать, о результатах отпишусь.
Записан
thedimitrius
Гость
« Ответ #5 : Апрель 01, 2010, 12:59 »

Итак.
Сделал всё по инструкции от ufna, кроме того, что убрал дефайн QT_NO_DRAGANDDROP (что, может, и к лучшему - попробую его поиспользовать в программе своей).
И.... Оно заработало!
Огромное спасибо ufna за советы и отклик=)
ufna, если Вы не возражаете, я переведу на английский Вашу статью и выложу на англоязычных форумах, подозреваю, что она будет полезной (естественно, со ссылкой на Вашу страничку).
Ещё раз спасибо=)
Записан
ufna
Гость
« Ответ #6 : Апрель 01, 2010, 14:02 »

не за что, всегда рад помочь Подмигивающий конечно я не против перевода Подмигивающий

а про QDragEvent'ы - забыл про этом написать, сейчас и в статью добавлю. В настройках проекта, в "С/С++" разделе в командную линию надо добавить те же флаги:
Код
C++ (Qt)
/D "QT_NO_DRAGANDDROP" /D "QT_NO_DRAGANDDROP" /D "QT_NO_CLIPBOARD" /D "QT_NO_ACCESSIBILITY" /D "QT_NO_SESSIONMANAGER"

тогда компоновщик ругаться не будет и все пройдет успешно Улыбающийся Просто вне зависимости от того, как собрана библиотека, исходники то остаются теми же самыми, и если не указать эти дефайны, студия так же тянет "запрещенные нами" функции.

P.S. - Не факт что drag n drop есть реально - может быть случай, что когда его только реально подключишь, приложение начнет вылетать со ссылкой на кусок coredll.dll.
« Последнее редактирование: Апрель 01, 2010, 14:06 от ufna » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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