Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > На каком языке и в какой среде писать программу?


Автор: Coder 21.7.2007, 06:23
Есть задание - написать программу, которая бы работала под платформу Windows NT и Windows Mobile. С КПК никогда дело не имел, но знаю, что в среде MSVC2005 есть эмулятор КПК. Еще бы хотелось узнать нет ли такого эмулятора в новых студиях от Borland. 
В общем хотелось бы чтобы программа одновременно компилировалась под КПК и обычную платформу.

Что посоветуете?

P.S. Программа для работы с графикой. Рисование на форме.

P.S.2. Ближе всего мне Паскаль и я готов писать эту программу на чистом WinAPI. Вот только бы можно было бы ее откомпилировать потом под КПК. Если такое сделать нельзя, могу писать и на Си.

P.S.3. написал в этот раздел, так как не нашел подходящего...

Автор: chipset 21.7.2007, 07:29
Ну поскольку я Паскаль только очень смутно помню на уровне синтаксиса из TurboPascal, я посоветую не использовать Borland для кодинга в C++. MSVS2005 (или mingw какой-нибудь) для C++, Borland для Pascal/Delphi/etc.
Удачи.

Автор: archimed7592 21.7.2007, 07:57
Цитата(Coder @  21.7.2007,  06:23 Найти цитируемый пост)
Что посоветуете?

Если готов писать на чистом WinAPI, то просто ознакомься с тем какие ф-ции есть в API win mobile, а каких нет(на какие есть ограничения, какие работают "немного иначе" и т.п.) - в таком случае язык вроде как не имеет значения smile.

Я бы посоветовал не изобретать велосипедов и воспользоваться готовым фреймворком.

Есть .NET - язык не имеет значения, работает как на рабочих станциях, так и на кпк, но, опять же, на Compact FW накладываются определённые ограничения и неплохо было бы ознакомится с ними, прежде чем начинать что-то делать smile.

Есть Java. Работает везде. Без комментариев smile.

Есть Qt. Насчёт win mobile не знаю, но у них точно есть какое-то решение для КПК. Возможно, что оно ограничивается только линуксом. Уточни в гугле. Штуковина, ЕМНИП, называется Qtopia.

Ну и так далее smile.

Автор: nerezus 21.7.2007, 08:59
Цитата

Программа для работы с графикой.
 Значит дотнет отпадает. На кпк его производительность в разы ниже натива.


Остается только C++ в среде VS8 =)

Добавлено через 1 минуту и 15 секунд
Цитата

Qtopia
 К WinMobile она никакого отношения не имеет.

Добавлено через 1 минуту и 58 секунд
Цитата

Есть Java. Работает везде. Без комментариев
 Не сказал бы. Под кпк нет JVM от Sun. Есть какие-то огрызочные и древние VM, но..

Автор: Coder 21.7.2007, 09:52
Цитата(chipset @  21.7.2007,  15:29 Найти цитируемый пост)
Ну поскольку я Паскаль только очень смутно помню на уровне синтаксиса из TurboPascal, я посоветую не использовать Borland для кодинга в C++. 

ниче не понял, причем тут паскаль и BCB...

Цитата(nerezus @  21.7.2007,  16:59 Найти цитируемый пост)
Значит дотнет отпадает. На кпк его производительность в разы ниже натива.

Учту

Цитата(nerezus @  21.7.2007,  16:59 Найти цитируемый пост)
Остается только C++ в среде VS8 =)

Т.е. как говорил archimed7592 - используя только совместимые API функции? А как же формат EXE файла? Неужели один EXEшник будет запускаться и там и там?

Цитата(nerezus @  21.7.2007,  16:59 Найти цитируемый пост)
Цитата
Есть Java. Работает везде. Без комментариев
Не сказал бы. Под кпк нет JVM от Sun. Есть какие-то огрызочные и древние VM, но.. 

Не... Ява однозначно не подходит. Нужна быстрая программа, которая выполнялась бы без сторонних библиотек и тем более VM.

Автор: Daevaorn 21.7.2007, 09:59
Цитата(Coder @  21.7.2007,  10:52 Найти цитируемый пост)
Т.е. как говорил archimed7592 - используя только совместимые API функции? А как же формат EXE файла? Неужели один EXEшник будет запускаться и там и там?

нет конечно. просто в последней студии очень легко переключаться между конфигурациямии процесс создания исполняемого файла под обе платформы очень легок.
А на паскале тоже можно, FreePascal должен поддерживать WinCE.

Автор: nerezus 21.7.2007, 11:52
Цитата

 А как же формат EXE файла?
 Абсолютно такой же.

Цитата

Неужели один EXEшник будет запускаться и там и там?
 Нет, придется перекомпилить.

Цитата

Нужна быстрая программа
 А жаба разве медленная?

Автор: Coder 21.7.2007, 13:24
Цитата(nerezus @  21.7.2007,  19:52 Найти цитируемый пост)
Нет, придется перекомпилить.

ну это не проблема. 

Цитата(nerezus @  21.7.2007,  16:59 Найти цитируемый пост)
Не сказал бы. Под кпк нет JVM от Sun. Есть какие-то огрызочные и древние VM, но.. 

Цитата(nerezus @  21.7.2007,  19:52 Найти цитируемый пост)
А жаба разве медленная? 

под КПК думаю, что да.

Про FreePascal это интересно, познакомлюсь. Если не подойдет придется писать на С++

Автор: witex 21.7.2007, 18:56
Ваабще реально одну софтину сделать! но тебе прийдётся считай в одной проге сделать две! И юзать макросы! Проверяешь за счёт макросов какая у тебя винда! и потом вперёд код выполнять именно под ту ОС которая нужна!

Автор: archimed7592 21.7.2007, 19:08
Цитата(witex @  21.7.2007,  18:56 Найти цитируемый пост)
Ваабще реально одну софтину сделать! но тебе прийдётся считай в одной проге сделать две! И юзать макросы! Проверяешь за счёт макросов какая у тебя винда! и потом вперёд код выполнять именно под ту ОС которая нужна! 

То о чём ты говоришь называется две софтины склеенные посредством макросов в "одну". Это извращение и делать так вовсе необязательно.

Автор: nerezus 21.7.2007, 19:37
archimed7592
как минимум 95% этих софтин совпадают(при правильном проектировании), так что... ;)

Автор: djman2006 22.7.2007, 01:29
Цитата(nerezus @ 21.7.2007,  19:37)
archimed7592
как минимум 95% этих софтин совпадают(при правильном проектировании), так что... ;)

Такие вещи палятся антивирусами  smile 

Автор: archimed7592 22.7.2007, 01:36
Цитата(nerezus @  21.7.2007,  19:37 Найти цитируемый пост)
как минимум 95% этих софтин совпадают(при правильном проектировании), так что... ;) 

Одно дело, когда 95% когда будет включено и в одну и в другую версию, и совсем другое, когда
Цитата(witex @  21.7.2007,  18:56 Найти цитируемый пост)
тебе прийдётся считай в одной проге сделать две!


ИМХО.

Автор: fish9370 22.7.2007, 12:53
Coder, работал с графикой под WM 2003.. писал код в Microsoft eMbedded Visual C++ 4.0.. отличий в написании под стандартную винду было не много.. теже API функции.. вот вывод сомой графики порадовал, там есть функция возвращающая адрес видеобуфера.. что нужно делать, так это тупо копировать туда данные.. ограничения, в количестве цветов на одну точку 16-бит.. соответственно используется схема 5х6х5.. требуется конвертировать.. в целом такое программирование меня порадовало.. напомнило старый ДОС.. 

Автор: witex 22.7.2007, 16:01
Некоторые классы можно конечно обобщить! Но всё таки как минимум это будет написанно 1,5 проги в одной! Такое ваабще ни нужно! Лудше просто эти классы скопировать в другой проект и тама юзать! Если делать одной софтины будет много весить! А на КПК обычно много мета не бывает!

Автор: Daevaorn 22.7.2007, 16:06
Цитата(witex @  22.7.2007,  17:01 Найти цитируемый пост)
Некоторые классы можно конечно обобщить! Но всё таки как минимум это будет написанно 1,5 проги в одной! Такое ваабще ни нужно! Лудше просто эти классы скопировать в другой проект и тама юзать! Если делать одной софтины будет много весить! А на КПК обычно много мета не бывает! 

всё зависит от архитектуры. при грамотном планировании можно свести платформо-зависимый код до минимума, что убыстрит портирование и сведет на нет необходимость в сопровождениее отдельного проекта для каждой платформы.

Автор: archimed7592 22.7.2007, 17:48
Цитата(witex @  22.7.2007,  16:01 Найти цитируемый пост)
Некоторые классы можно конечно обобщить! Но всё таки как минимум это будет написанно 1,5 проги в одной! Такое ваабще ни нужно! Лудше просто эти классы скопировать в другой проект и тама юзать!

С такими рассуждениями можно и win+linux проекты по отдельности писать.
Да, это конечно очень муторно думать прежде чем начинать кодить, очень лениво нормально проектировать и делать хорошие проекты. Но, блин, как только твой проект чуть-чуть разрастётся, или требования начнут менятся, или багов очень много выявят, или ещё что-нибудь приключится - тебе придётся переписывать заново обе версии потому что одновременно вносить изменения в обе да ещё и так, чтобы это не добавляло по десятку разных багов к каждой версии у тебя не получится.
Но если нравится заниматься всякой фигнёй, то я, в принципе, ничего против не имею.

Цитата(witex @  22.7.2007,  16:01 Найти цитируемый пост)
Если делать одной софтины будет много весить! А на КПК обычно много мета не бывает!

Если требования к программе одинаковые как для десктопной версии, так и для КПК, то "вес" её будет (+-)идентичен вне зависимости от того какой путь реализации ты выберешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)