Отличия Windows CE

Windows CE имеет целый ряд уникальных характеристик, которые делают ёё отличной от других платформ Windows. В первую очередь системы, работающие под управлением Windows CE - это системы не являющиеся x86-совместимыми. Лишь небольшой список процессоров способен работать под Windows CE. К счастью, среда разработки изолирует программиста практически от всех отличий среди различных процессоров. Программа под Windows CE не может быть уверена в наличии экрана или клавиатуры. Большая часть устройств типа Pocket PC имеют портретный стиль экрана, с разрешением 240 на 320 пикселей, также существуют модели с более традиционным разрешением, например, 480 на 240, 640 на 240, или даже 640 на 480 пикселей. Да и возможно, что устройство не имело бы дисплея вообще. Целевые устройства, возможно, не поддерживали бы цвет. Самое интересное, что вместо мыши большинство устройств Windows CE имеет сенсорный экран. На устройстве с сенсорным экраном, щелкания левой клавиши мыши реализованы с помощью нажатия по экрану, но нет никакого очевидного метода для доставки сообщений о нажатии правой кнопки мыши. Один из методов опознавания нажатия правой кнопки мыши в Windows CE - удерживать клавишу Alt при нажатии. Это заставляет приложение под Windows CE интерпретировать эту последовательность как правый щелчок мыши.  

Меньшие Ресурсы в Устройствах Windows CE

Ресурсы целевых устройств различаются коренным образом на системах, которые используют Windows CE. При написании программы под обычный Windows, программист может сделать целый ряд предположений о целевом устройстве, но это почти всегда IBM -совместимый ПК. Целевое устройство будет иметь жесткий диск для постоянной памяти и виртуальной памяти, которая использует жесткий диск в качестве устройства подкачки, чтобы поддержать почти безграничное количество (виртуальной) оперативной памяти. Программист знает, что пользователь имеет клавиатуру, двухкнопочную мышь, и монитор, который в наши дни, поддерживает не менее 256 цветов и разрешающую способность экрана как минимум 800 на 600 пикселей. Программы Windows CE, выполняются на устройствах, которые почти всегда не имеют жестких дисков для постоянной памяти. Отсутствие жесткого диска означает не только отсутствие места, для хранения больших файлов. Без жесткого диска, виртуальная Оперативная ПАМЯТЬ не может быть создана, перемещая данные на диск. Так что программы Windows CE почти всегда выполняются в окружении с малой памятью. Выделение памяти может, и часто вызывают, ошибку из-за недостатка ресурсов. Windows CE может завершить программу автоматически, когда свободная память достигает критически низкого уровня. Это ограничение оперативной памяти создает удивительно большую проблему при написании программах под Windows CE, и еще большую при переносе программ из Windows в Windows CE.

Unicode

Единственное на что программист может рассчитывать при написании приложений Windows CE – это Unicode. Unicode - это стандарт для представления символа как 16-разрядное значение в противоположность стандарту ASCII кодирования символа в единое 8-разрядное значение. Unicode предполагает простое написание программ для различных международных рынков, потому что символ любого языка может быть представлен в одном из 65,536 доступных значений Unicode. Работа с Unicode относительно безболезненна, пока вы избегаете двойных предположений, сделанных большинством программистов, что строки представлены в ASCII, и что символы запоминаются в одном байте. Следствием для программы, использующей Unicode, является то, что с каждый символ занимает два байта вместо одного, а строки стали вдвое длиннее. Программист должен быть осторожен, делая предположения о буферной длине и длине строки. Вы больше не должны предполагать, что 260-байтовый буфер может содержать 259 символов и нуль завершения. Вместо типа данных стандартных символов, вы должны использовать тип данных TCHAR. TCHAR определен как символьный тип для Microsoft Windows 95 и Microsoft Windows 98, и беззнаковый для Unicode-разрешенных приложений для Microsoft Windows 2000 или более новой разработки Windows XP и Windows CE. Эти типы позволяют на уровне исходника реализовать совместимость для ASCII и Unicode операционных систем.

Новые Средства контроля

Windows CE включает целый ряд новых средств Windows контроля, разработанных для определенных окружений. Новые средства контроля включают командную полосу, которая обеспечивает объединение форм “меню” и “панели инструментов” в одной строке, для экономии пространства, что очень важно для устройств с маленьким экраном. Другие стандартные средства Windows контроля сократили свои функции, отображая компактную природу аппаратно-программных средств ОС Windows CE. Другой аспект программирования под Windows CE - быть осведомленным о том, что Windows CE может быть переделана и переконфигурирована Microsoft или производителем оборудования таким образом, что сама Windows может быть лучше приспособлена к конкретному рынку или устройству. Программисты Windows обычно проверяют только версию Windows, чтобы удостовериться, есть ли это Microsoft Windows  95, 98, ME, или Windows 2000, Windows XP. Зная версию, они могут определить, какие функции API им доступны. Но Windows CE может быть сконфигурирована бесконечно различными способами. Две из наиболее популярных конфигураций - это Handheld PC Pro и Pocket PC. Новые платформы продолжают выпускаться со многими сходствами, но и со многими отличиями в них. Программистам нужно знать конечную платформу и осуществлять их проверку, для определения какие функции доступны на той специфической платформе, а какие возможно, и не поддерживаются на том устройстве. В конце концов, Windows CE на столько меньше, чем Windows ME или Windows XP, что это просто не возможно обеспечить поддержку всех функций, которую обеспечивают ее большие двоюродные сёстры. В то время как вы ожидали увидеть операционную систему, которая не поддерживает печать, Windows CE мало того, что не поддерживает никаких вызовов функций печати, в ней также удалены некоторые избыточные функции, поддерживаемые его большими сёстрами. Если Windows CE не поддерживает вашу любимую функцию, другая функция или множество функций будет вероятно работать так же хорошо. Иногда кажется, что программирование под Windows CE состоит из выяснения путей реализации особенностей используя стандартный API Windows CE.

http://forum.xda-developers.com/