Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.05.11 08:08
Оценка:
Приехала от китайцев такая вот балалайка. С доступом к родному интерфейсу винды проблем не возникло — там даже с экранной клавиатуры через Win можно открыть Start Menu, а ежели подключить внешнюю, то через Alt-Tab/Alt-Esc доступны и быстрое переключение, и Task Manager.

Затык обнаружился совсем с другой стороны: некоторые приложения (2gis, AlReader, QIP, Advanced Lines), успешно работавшие у меня на Loox 720 (Pocket PC/Win Mobile 2003), под CE6 тупо не запускаются — даже экран не дергается в момент запуска, не появляется нового процесса, вообще никаких следов. Ряд других приложений (Total Commander, GPSInfo, PHM Device Manager, PHM Task Manager, PuTTY, Yandex Maps, TCPMP) работают без каких-либо нареканий. Все перечисленное скомпилировано под ARM.

Каким образом можно определить, что мешает системе запустить приложение, не выкидывая каких-либо сообщений?

Еще непонятно себя ведет CabInstl. Внешне работает совершенно нормально — позволяет выбрать исходный CAB и путь установки, показывает диалог прогресса, в котором даже что-то на доли секунды проскакивает, не выдает никаких предупреждений/ошибок ("Do not show warnings" отключено), но после этого в указанном каталоге по-прежнему пусто.

У меня было подозрение на размер системного устройства — изначально для Storage Memory был лимит в несколько сотен килобайт, но после того, как я его увеличил до 32 Мб, ничего не изменилось.

Какие могут быть объяснения такому поведению системы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Странное поведение WinCE 6.0 в ресивере
От: stele Россия www.stele.su
Дата: 23.05.11 11:15
Оценка: 6 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Какие могут быть объяснения такому поведению системы?


А вроде бы ни кто и не обещал для WinMobile и WinCE обязательной возможности запуска одних и тех-же бинарников несмотря на всю их родственность. По всей видимости некоторые приложения хотят наличия каких либо библиотек, специфичых для другой платформы, ну вот так по незнанию или с умылом сделали разработчики этих приложений. К тому же, если склероз не изменяет, WinMobile это WinCE5.x, а WinCE6.0 это до некоторой степени немного другое.
... << RSDN@Home 1.2.0 alpha 5 rev. 1497>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[2]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.05.11 15:11
Оценка:
Здравствуйте, stele, Вы писали:

S>А вроде бы ни кто и не обещал для WinMobile и WinCE обязательной возможности запуска одних и тех-же бинарников несмотря на всю их родственность. По всей видимости некоторые приложения хотят наличия каких либо библиотек, специфичых для другой платформы, ну вот так по незнанию или с умылом сделали разработчики этих приложений.


Теоретически, я это сам знаю. Точно так же можно сказать, что приложение, писаное под Win95, не обязано работать в Win7, однако подавляющее большинство таки работает. Вот и хочется практических идей, чтобы не заниматься углубленным изучением особенностей WinCE/WinMobile и не открывать в сотый раз велосипед. Может, есть какие-то сводные списки различий.

Ну и обычная винда, ежели приложение требует несуществующей DLL или несуществующей функции, об этом сообщает. Можно ли в CE как-то увидеть причину отказа в создании/загрузке процесса?

S> К тому же, если склероз не изменяет, WinMobile это WinCE5.x, а WinCE6.0 это до некоторой степени немного другое.


Верно. Но оно ж декларируется, как достаточно совместимое снизу вверх, вот я и в непонятках.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Странное поведение WinCE 6.0 в ресивере
От: quodum  
Дата: 24.05.11 07:13
Оценка: 6 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ> Вот и хочется практических идей, чтобы не заниматься углубленным изучением особенностей WinCE/WinMobile и не открывать в сотый раз велосипед. Может, есть какие-то сводные списки различий.


Общих списков различий не может быть хотя бы потому, что CE -- это конструктор, а WM -- это конкретная поделка, собранная из этого конструктора. Вендор волен выбирать, какие части системы будут присутствовать (включая куски WinAPI). Попросите у вендора SDK, дальше можете сравнить его с WM SDK.

ЕМ>Ну и обычная винда, ежели приложение требует несуществующей DLL или несуществующей функции, об этом сообщает. Можно ли в CE как-то увидеть причину отказа в создании/загрузке процесса?


Для начала попробуйте Dependency Walker и посмотрите, все ли библиотеки есть. Например, аygshell с большой долей вероятности может отсутствовать на CE.

Если все библиотеки на месте -- запускайте под отладчиком.
Re[4]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.05.11 11:33
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Для начала попробуйте Dependency Walker и посмотрите, все ли библиотеки есть. Например, аygshell с большой долей вероятности может отсутствовать на CE.


Библиотеки все есть, в том числе aygshell, но я не могу посмотреть, все ли функции она экспортирует — система не дает читать файлы из ROM. Есть ли обходной путь?

Q>Если все библиотеки на месте -- запускайте под отладчиком.


А есть на свете отладчики, работающие без ActiveSync, через COM-порт или, на худой конец, через TCP? У этой балалайки не выведен USB Client, только USB Host. У процессора (TeleChips TCC890x) он есть, но процессор в BGA-корпусе, подпаяться нереально.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.05.11 11:44
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Общих списков различий не может быть хотя бы потому, что CE -- это конструктор, а WM -- это конкретная поделка, собранная из этого конструктора. Вендор волен выбирать, какие части системы будут присутствовать (включая куски WinAPI).


Однако, не может быть также и ситуации, в которой каждый вендор независимо от других включает в систему свой уникальный набор функциональности. Большинство вендоров пользуется готовыми шаблонами — хоть кем-то рекомендованными, хоть у кого-то спертыми. И многие программы существуют в версиях "просто под WinCE такой-то версии", практически нигде не конкретизируются системные требования. Значит, обязаны быть и некие стандарты де-факто, о них я и спрашиваю.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Странное поведение WinCE 6.0 в ресивере
От: quodum  
Дата: 24.05.11 12:08
Оценка: 6 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Библиотеки все есть, в том числе aygshell, но я не могу посмотреть, все ли функции она экспортирует — система не дает читать файлы из ROM. Есть ли обходной путь?


ЕМ>А есть на свете отладчики, работающие без ActiveSync, через COM-порт или, на худой конец, через TCP? У этой балалайки не выведен USB Client, только USB Host. У процессора (TeleChips TCC890x) он есть, но процессор в BGA-корпусе, подпаяться нереально.


А там случайно не USB On-The-Go? Вроде-бы тогда достаточно правильного кабеля, чтобы хост превратился в клиент. Если, конечно, в прошивке есть драйвера.

А последовательный порт есть? Что в него валится?
Если вендор не отключил отладку, то может оказаться достаточно послушать системный отладочный вывод в момент запуска приложения (скорость по умолчанию — 19200, если мне склероз не изменяет. Или 38400?)

Есть отладчик в Platform Builder. Но это-то скорее всего отключено в прошивке. Если не жалко времени и есть лишних 10 гигов места -- можно поставить PB (он интегрируется с вижуалкой) и попробовать.

Если есть Bluetooth, можно поднять на девайсе ActiveSync поверх BT serial (если там конечно есть сам ActiveSync — ищите repllog.exe).
Re[5]: Странное поведение WinCE 6.0 в ресивере
От: quodum  
Дата: 24.05.11 12:14
Оценка: 6 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Однако, не может быть также и ситуации, в которой каждый вендор независимо от других включает в систему свой уникальный набор функциональности. Большинство вендоров пользуется готовыми шаблонами — хоть кем-то рекомендованными, хоть у кого-то спертыми. И многие программы существуют в версиях "просто под WinCE такой-то версии", практически нигде не конкретизируются системные требования. Значит, обязаны быть и некие стандарты де-факто, о них я и спрашиваю.


Ну не знаю. Когда я с этим последний раз имел дело, получили мы от вендора SDK в котором практически ничего не было. Потыкались-потыкались, потом наконец упёрлись. Пишем, мол, вы уверены что хотите релизить продукт в таком виде? Включите хотя-бы поддержку COM, а то половина затребованной функциональности работать не будет (не говоря о сторонних приложениях). А те в ответ: мы ничего в этом не понимаем, у нас прошивками занимается один человек со стороны. Вы нам напишите чего вам не хватает. Когда он в следующий раз заедет, мы ему передадим.
Re[6]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.05.11 12:46
Оценка:
Здравствуйте, quodum, Вы писали:

Q>А там случайно не USB On-The-Go? Вроде-бы тогда достаточно правильного кабеля, чтобы хост превратился в клиент. Если, конечно, в прошивке есть драйвера.


Драйверы — меньшая проблема, их можно подсунуть и с карточки. Беда в том, что у самого процессора интерфейс OTG, но наружу торчит только 4-контактная A-розетка, поэтому, боюсь, прошивка конфигурирует контроллер в режим Host-Only.

Q>А последовательный порт есть? Что в него валится?


Физически у процессора порт есть, и даже виден в системе, а вот где его искать на плате — ума не приложу. Могу подключить USB-RS232, но как указать конкретный порт?

Q>Если вендор не отключил отладку, то может оказаться достаточно послушать системный отладочный вывод в момент запуска приложения


А в какой порт оно валит по умолчанию — всегда COM1, или по выбору?

Q>Есть отладчик в Platform Builder. Но это-то скорее всего отключено в прошивке. Если не жалко времени и есть лишних 10 гигов места -- можно поставить PB (он интегрируется с вижуалкой) и попробовать.


PB у меня стоит, но не помню, в какой конфигурации я его ставил. Я оттуда брал только заголовки и библиотеки, когда возился с драйвером от CE5.

Q>Если есть Bluetooth, можно поднять на девайсе ActiveSync поверх BT serial (если там конечно есть сам ActiveSync — ищите repllog.exe).


repllog есть, и BT есть. Спасибо за идею, попробую.

Удивительно только, отчего нет обычного сообщения для юзера на случай отсутствия нужных ресурсов. Этому есть какое-то разумное объяснение, или, как обычно, левая пятка MS так захотела?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Странное поведение WinCE 6.0 в ресивере
От: quodum  
Дата: 24.05.11 13:59
Оценка: 6 (1) +1
Здравствуйте, Евгений Музыченко, Вы писали:

Q>>А последовательный порт есть? Что в него валится?


ЕМ>Физически у процессора порт есть, и даже виден в системе, а вот где его искать на плате — ума не приложу. Могу подключить USB-RS232, но как указать конкретный порт?


Не уверен, что отладочный вывод может работать через USB-COM. В CE5 не мог.

Q>>Если вендор не отключил отладку, то может оказаться достаточно послушать системный отладочный вывод в момент запуска приложения


ЕМ>А в какой порт оно валит по умолчанию — всегда COM1, или по выбору?


По умолчанию -- первый, но это конфигурируется в PB при создании прошивки и может переназначаться загрузчиком при запуске.

ЕМ>Удивительно только, отчего нет обычного сообщения для юзера на случай отсутствия нужных ресурсов. Этому есть какое-то разумное объяснение, или, как обычно, левая пятка MS так захотела?


Наверно решили, что во встроенной системе надо экономить ресурсы, а приложения должен ставить вендор, а не пользователь
Или, может быть, оно просто падает из-за какой-то несовместимости, а не завершается с ошибкой.
Re[8]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.05.11 14:32
Оценка:
Здравствуйте, quodum, Вы писали:

ЕМ>>А в какой порт оно валит по умолчанию — всегда COM1, или по выбору?


Q>По умолчанию -- первый, но это конфигурируется в PB при создании прошивки и может переназначаться загрузчиком при запуске.


Из реестра не управляется?

Q>Наверно решили, что во встроенной системе надо экономить ресурсы


Да, целый килобайт сэкономили.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 28.05.11 05:06
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Когда я с этим последний раз имел дело, получили мы от вендора SDK в котором практически ничего не было.


"Ничего не было" — это в каком смысле? Не было каких-то DLL, или сами DLL были, но не было некоторых функций, или в ядре не было каких-то модулей?

Вот, например, пытаюсь запустить игрушку Advanced Lines — вообще никакой реакции. Смотрю ее в PeInfo — говорит "mfcce300.dll not accessible". Действительно, этой DLL в системе нет. Копирую mfcce300.dll из MioPocket в каталог Windows — она там видна (до перезагрузки), но программа по-прежнему не запускается, PeInfo продолжает сообщать "mfcce300.dll not accessible". Копирую вдобавок mfcce300.dll еще и в каталог Advanced Lines рядом с его EXE — то же самое. За счет чего DLL может быть недоступна, если сам файл доступен?

С установкой CAB тоже полные непонятки. Кликаю на CAB — появляется диалог "Installing application" с progress bar'ом, через долю секунды шапка меняется на "Installing <имя приложения>", еще через долю секунды диалог закрывается. Progress bar не движется. Никакого эффекта после этого не видно — нигде не появляется новых файлов, записей в реестре, в системном списке установленных программ (там вообще пусто).

CabInstl ведет себя аналогично — отображает диалог на долю секунды, после чего тихо закрывается.

Перебрав несколько десятков CAB'ов, обнаружил, что старая оболочка ДубльГИС для WM2003 (2gisPPC_10_04_2007.cab) ведет себя иначе: выдается предупреждение о несовместимости, после принятия которого progress bar движется, и вся установка выглядит совершенно корректной (файлы скопированы, записи в реестре есть, программа в системном списке есть). Разумеется, сама программа не запускается. Удаление программы системными средствами тоже выполняется без проблем.

Получается, что совместимые программы тихо уходят в никуда, зато несовместимая ставится внешне корректно. Отчего это может быть?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Странное поведение WinCE 6.0 в ресивере
От: eskimo82  
Дата: 26.07.11 19:02
Оценка: -1 :)
Копирую mfcce300.dll из MioPocket в каталог Windows

И вы вправду думаете что это поможет ?

Могу сразу сказать это не поможет — WinCE и WM — почти разные системы.
Грубо можно сказать что WM это частный случай CE с некоторой надстройкой (даже если архитектуры CPU одинаковы).
Некоторые CE программы могут работать под WM, но не наоборот.

Для вашего пылесоса надо пересобирать все программы с использованием родного SDK.
Re[8]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.07.11 03:06
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Могу сразу сказать это не поможет — WinCE и WM — почти разные системы.


Спасибо, я это знаю без Вас.

E>Некоторые CE программы могут работать под WM, но не наоборот.

E>Для вашего пылесоса надо пересобирать все программы с использованием родного SDK.

Не делайте настолько глупых и непродуманных утверждений, смешно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Странное поведение WinCE 6.0 в ресивере
От: eskimo82  
Дата: 27.07.11 18:02
Оценка: -1
ЕМ>Спасибо, я это знаю без Вас.
Если написали об этом здесь, значит не знаете, либо не знали.

ЕМ>Не делайте настолько глупых и непродуманных утверждений, смешно.

Впрочем я не собираюсь в чем либо убеждать Вас. Я просто высказал свою экспертную точку зрения .
Re[10]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.07.11 18:13
Оценка:
Здравствуйте, eskimo82, Вы писали:

E>Если написали об этом здесь, значит не знаете, либо не знали.


Если обратите внимание, то первый пост на эту тему был написан два месяца назад. С тех пор я несколько расширил свои познания в области CE.

E>Я просто высказал свою экспертную точку зрения .


С такими категоричными заявлениями вряд ли стоит намекать на "экспертность". Ну а коли намекнули — не поленитесь уж "экспертно" объяснить, каким боком к данной теме относится SDK? Вот у меня программа собирается со стандартным SDK для PocketPC 2003 от VS 2005 — по-Вашему, это "программа для WM". С чего ж она тогда работает под любой CE4/5/6, построенной для любого устройства с экраном, и имеющей COREDLL.DLL и COMMCTRL.DLL? Как, собственно, туча других программ, собранных под WM аж в начале 2000-х. И чем программе, не работающей под определенной платформой CE, может помочь пересборка с SDK от этой платформы?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Странное поведение WinCE 6.0 в ресивере
От: stele Россия www.stele.su
Дата: 27.07.11 19:38
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот у меня программа собирается со стандартным SDK для PocketPC 2003 от VS 2005 — по-Вашему, это "программа для WM". С чего ж она тогда работает под любой CE4/5/6, построенной для любого устройства с экраном, и имеющей COREDLL.DLL и COMMCTRL.DLL?


Работают даже на устрайствах WinCE x86 и MIPS? Или всё таки они работают лишь на части устройств WinCE, построенных на некоторых процессорах семейства ARM? Win Mobile это лишь частный случай абстрактной вещи под названием Windows CE с жёсткими требованиями к типу применяемых процессоров, устройств ввода, свойств дисплея и применяемых библиотек. Если абстрактное устройство с WinCE подпадает под эти условия, то некая программа от WindowsMobile конечно будет работать, иначе уже лотерея с шансами 50 на 50 ((с) бородатый анекдот).
... << RSDN@Home 1.2.0 alpha 5 rev. 1497>>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Re[12]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.07.11 20:28
Оценка:
Здравствуйте, stele, Вы писали:

S>Работают даже на устрайствах WinCE x86 и MIPS? Или всё таки они работают лишь на части устройств WinCE, построенных на некоторых процессорах семейства ARM?


Разумеется, только на ARM — про разные системы команд здесь даже речи не заводилось.

А утверждение о том, что программа, написанная для работы под Win7, работает под Win9x/ME, NT4, 2k/XP/2003 и Vista, тоже вызовет у Вас вопрос, работает ли она на процессорах Alpha и IA64?

S>Win Mobile это лишь частный случай абстрактной вещи под названием Windows CE с жёсткими требованиями к типу применяемых процессоров, устройств ввода, свойств дисплея и применяемых библиотек. Если абстрактное устройство с WinCE подпадает под эти условия, то некая программа от WindowsMobile конечно будет работать, иначе уже лотерея с шансами 50 на 50 ((с) бородатый анекдот).


Да-да — "с точки зрения банальной эрудиции, каждый здравомыслящий индивидуум...". Зачем в сотый раз повторять формальные определения, от которых в рамках обсуждаемого вопроса нет никакого толку? Если Вам кто-то сообщает, что заедет за Вами "на машине" — Вы с равной долей вероятности ожидаете появления как легкового автомобиля, так и карьерного самосвала или седельного тягача?

WinCE для SH4, MIPS и x86 — это все-таки экзотика, как и Windows для IA64. Поэтому их можно смело опускать, подразумевая ARM. Далее, говоря об устройствах на WinCE для конечного пользователя, нет смысла подразумевать устройства, не имеющие экрана, не имеющие типового устройства ввода — тачскрина и/или клавиатуры, не имеющие базового набора компонент, обеспечивающих работу хоть каких-то программ, кроме специально разработанных для данного конкретного устройства.

Да и вообще нет смысла говорить о том, что программа, собранная обычным образом (в exe-файле), "будет" или "не будет" работать на устройстве, система в котором неспособна ее обычным образом загрузить. А про встраивание программы в прошивку я ничего не говорил.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Странное поведение WinCE 6.0 в ресивере
От: eskimo82  
Дата: 28.07.11 18:36
Оценка: -1
ЕМ>С такими категоричными заявлениями вряд ли стоит намекать на "экспертность". Ну а коли намекнули — не поленитесь уж "экспертно" объяснить, каким боком к данной теме относится SDK? Вот у меня программа собирается со стандартным SDK для PocketPC 2003 от VS 2005 — по-Вашему, это "программа для WM".
Да.

ЕМ>С чего ж она тогда работает под любой CE4/5/6, построенной для любого устройства с экраном, и имеющей COREDLL.DLL и COMMCTRL.DLL?

Как вам уже обьяснили, она не работает, или работает не правильно, но в некоторых частных случаях может быть будут работать — если не используют фишки WM, и если WinCE собрана с теме же модулями (а она модульная) что и WM, на том же самом типе процессора (даже внутри ARM есть несколько семейств). Да и еще на WinCE кроме вами перечисленого нету aygshell.dll и много чего другого специфичного для WM — про это вы забыли.

ЕМ>Как, собственно, туча других программ, собранных под WM аж в начале 2000-х.

Даже для WinCE.NET (на основе WCE200) ?, не говоря уже о том что ARM — он разный, есть ARM, есть StrongARM, есть еще куча всего...

ЕМ>И чем программе, не работающей под определенной платформой CE, может помочь пересборка с SDK от этой платформы?

Помочь начать работать.
Re[12]: Странное поведение WinCE 6.0 в ресивере
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 29.07.11 05:49
Оценка:
Здравствуйте, eskimo82, Вы писали:

ЕМ>>Вот у меня программа собирается со стандартным SDK для PocketPC 2003 от VS 2005 — по-Вашему, это "программа для WM".


E>Да.


Боюсь, Вам имеет смысл более тщательно изучить процесс компиляции и связывания программы, дабы не делать столь глупых заявлений.

ЕМ>>С чего ж она тогда работает под любой CE4/5/6, построенной для любого устройства с экраном, и имеющей COREDLL.DLL и COMMCTRL.DLL?


E>Как вам уже обьяснили, она не работает, или работает не правильно


Прямо чудеса какие-то. У меня программа работает, и совершенно правильно, и вдруг мне кто-то "объясняет", что на самом-то деле она не работает, или работает неправильно. А мне почему-то кажется, что "объясняющий" чего-то недопонимает.

E>но в некоторых частных случаях может быть будут работать — если не используют фишки WM, и если WinCE собрана с теме же модулями (а она модульная) что и WM, на том же самом типе процессора (даже внутри ARM есть несколько семейств).


Она работает не "в некоторых частных случаях", а во всех случаях, когда аппаратная и программная конфигурация платформы удовлетворяет потребностям программы. Забавно, но почему-то исключительно в отношении CE/WM наблюдается эта никому не нужная скрупулезность. Зачем она — для придания себе умного вида? Внутри x86 тоже есть множество семейств, однако в отношении программы для DOS, использующей особенности i486, никому в голову не придет рассуждать о том, что это якобы "не совсем программа для DOS", равно как и в отношении программы, собранной с SDK от Win7, но в полном объеме работающей под Win95.

"Программа для системы XXX" — это программа, реально использующая особенности именно системы XXX. С каким SDK/DDK собрана эта программа — совершенно неважно, лишь бы готовый машинный код был способен исполняться на целевой платформе. Макросов, раскрывающихся в системно-зависимые конструкции, в SDK очень мало — в подавляющем большинстве они раскрываются либо в конечный код, либо в вызов функции из DLL. Если в какой-то системе поддерживаются вся функциональность, потребная для программы — программа будет работать в этой системе.

E> Да и еще на WinCE кроме вами перечисленого нету aygshell.dll и много чего другого специфичного для WM — про это вы забыли.


И после этого Вы претендуете на "экспертную" точку зрения? "На WinCE", да будет Вам известно, бывают и aygshell, и mfccexxx, и bthutil, и winsock/ws2, и iphlpapi, и "много чего другого". А вот, скажем, Pocket Word или Pocket Excel — не бывает, ибо они уже не входят в исполняющую подсистему ОС, а идут лишь в качестве дополнительных компонент.

В тех CE, что стоят на моих устройствах, есть и aygshell, и даже IE. Что совершенно неудивительно.

ЕМ>>Как, собственно, туча других программ, собранных под WM аж в начале 2000-х.


E>Даже для WinCE.NET (на основе WCE200)?


Конечно. Если .NET не интегрирован в систему — ставится Compact .NET Framework, и вперед. Не работают только программы, испольющие (умышленно или нечаянно) какие-то особенности WM, присущие только ей — например, DLL поддержки тех самых дополнительных компонент, не входящих в исполняющую подсистему.

E>не говоря уже о том что ARM — он разный, есть ARM, есть StrongARM, есть еще куча всего...


Ага, и x86 — он тоже разный: есть 8086, есть 80186/80286, есть 80386/80486, есть еще куча пентиумов, у каждого из которых свои особенности. И при всем этом, изрядное количество программ, собранных в 2011 году под Win7, преспокойно работает на первопне под Win95, а если совсем чуть-чуть постараться — то и на 386. И это, как ни странно, мало кого удивляет.

ЕМ>>И чем программе, не работающей под определенной платформой CE, может помочь пересборка с SDK от этой платформы?


E>Помочь начать работать.


Очередная глупость. Не поможет ей это начать работать — поможет лишь увидеть, какие из используемых функций в целевой системе не поддерживаются. Если, конечно, требуется лишь наличие определенной функции, а не какая-либо особенность ее работы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.