Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Delphi 2005 & Pocket PC   Найти похожие ветки 

 
pusrg   (2005-02-22 20:19) [0]

Уважаемые коллеги!

Подскажите можно ли скомпилировать приложение в новой версии Делфи2005 для работы на Pocket PC 2000(2002-2003)?

Попытался сам решить эту проблему, сделав следующие шаги:
1. Поставил триальную Делфи 2005 с сайта Борланда. (Ужжжасный геморой при установке! ).
Установку сделал без поддержки языка С#, все остальные возможности ставил в полном объеме.
2. На КПК поставил Compact FrameWork 1.0 SP2 (c сайта Microsoft).
3. Скомпилировал два тестовых приложения. Одно с поддержкой VCL Forms (форма с надписью), второе с поддержкой Windows Forms,
взял из примеров к среде - реализация игры "Тетрис". При компиляции удалил все флажки в опциях проекта в разделе Compilation, в группах "Debugging" и "Runtime Errors" и убрал оптимизацию.
4. При попытке запустить любое из этих приложений на КПК программа вываливается с ошибкой: TypeLoadException.

В инете пробовал искать тематику по этой проблеме, но однозначного ответа не нашел :(. Варианты ответов колеблются от: "вроде как можно, даже Борланд это анонсировал, но точно неизвестно..." до "скорее всего нельзя, нужно ждать операционку CE.NET на устройства..." :).

Буду благодарен за точный ответ. Заранее спасибо.
Извиняюсь, если этот вопрос на форуме уже звучал, но его я, к сожалению, не нашел.
С уважением,


 
vecna ©   (2005-02-22 23:35) [1]

Я не стану утверждать, тем не менее, CE и Win32 - разные ОСи, с разными элементами управления. Нету на КПК MDI, нету меню, нету тулбаров... много чего нету... в общем случае, нельзя просто взять и перекомпилировать программу для КПК.
Борланду либо надо придумывать а-ля PocketVCL =) либо писать на чистом CE API. Кроме того, мне казалось, что скомпилированный код все же зависит от платформы. В КПК отнюдь не x86 совместимые процессоры.

Думаю так, возможно гоню... =)


 
вредитель ©   (2005-02-22 23:52) [2]

Думаю так, возможно гоню... =)
И да и нет.

1. Борланду либо надо придумывать а-ля PocketVCL =) либо писать на чистом CE API.
Возможно, я Вас удивлю, но под CE можно писать на MFC. Достаточно установить eMbedded VC++. На данный момент, существует v4.0, возможно последняя. Бесплатна. Не упустите свой шанс.
P.S. CE API не особо сильно отличается от настольного.

Кроме того, мне казалось, что скомпилированный код все же зависит от платформы. В КПК отнюдь не x86 совместимые процессоры.
Существуют КПК с x86 процессорами. Но более распространены нынче ARM и MIPS.

Можно писать под эту платформу на C# и VB. Нужно лишь установить Visual Studio 7.1. Для того, чтобы приложение работало, нужно откомпилировать его под .NET CF, так что переносимость только на уровне исходников, да и то не всегда.

Про дельфи ничего не знаю и Вам не советую.


 
vecna ©   (2005-02-23 00:02) [3]

вредитель
>Возможно, я Вас удивлю, но под CE можно писать на MFC. Достаточно установить eMbedded VC++

Не удивите, я им и пользуюсь =)

>Существуют КПК с x86 процессорами
Хорошо, удивили... но смысла в этом нет =)

>Можно писать под эту платформу на C# и VB. Нужно лишь установить Visual Studio 7.1.

И на этом я тоже писал, но че-то не понравилось... остановился на eVC.

> Про дельфи ничего не знаю и Вам не советую.
Аналогично, но сомневаюсь, что Борланд прям вот в ближайшее время осилит рынок разработок для КПК...


 
by ©   (2005-02-23 12:06) [4]

Я пишу на С# для КПК, в Visual Studio. Без выкрутасов на Delphi 2005 я думаю что не написать для покетов. Одной из причин является то, что Compact Framework SDK нет. MS собираются его выпустить после выхода Studio 2005. Вот тогда и под Delphi 2005 будет можно писать.
Хотя в контексте .Net я бы выбрал С#, а не Delphi.Net. С Delphi.Net создается ощущение что слеписли слона с носорогом, отовсюду торчат уши VCL, которую заворачивают в родные классы .Net (или наоборот).


 
[wl]   (2005-02-23 13:22) [5]

простой пример. создайте обычное приложение в vs на c# (windows form). скомпилируйте, скопируйте на кпк и запустите - всё работает. то есть совместимость на уровне промежуточного языка msil есть. программа будет вываливаться с эксекшеном только в случае использования тех классов, которых нету на кпк.
то же самое работает и наоборот: голая форма для wince запускается в winxp.
можно попробовать накидать меню и всяких кнопок, я уверен на 90% что тоже будеть работать хотя бы в одну сторону (wince->winxp)
под делфи скопмилировать для wince НЕ получится, причины описаны в нете, не помню точно какие, что-то связанное с сильной привязкой в реестру у борланда.


 
pusrg   (2005-02-23 14:31) [6]

Спасибо всем ответившим.

Я тоже програмирую на EVC. Хочу попробовать C#, но сейчас передо мной стоит задача иного плана:
Есть программа для Win32, написанная в Delphi. Задача, в кратчайшие сроки, портировать приложение для работы на КПК. Заказчик даже не остановится перед приобретением лицензии к Delphi 2005, если она позволит создать аналогичное приложение
с минимальными изменениями.

Но, как я понял, эта мечта нереальна :(, я прав?

Остается портировать паскалевский код на C++ или C# :(.
Пожалуй даже выберу последний, т.к. никогда в нем не работал, а интересно попробовать, для расширения проффесионального кругозора.
Тогда такой формальный вопрос к людям, возможно решавшим подобные задачи, на какой из языков портировать легче ?:). Я понимаю, что вопрос скорее философский и риторический, но все же, кто хочет, выскажите свои предположения. При этом учитывайте следующие
факторы:
- C# я не знаю вообще :(.
- Краем уха слышал, что C# поддерживает события, возможно в этом плане портирование с Delphi будет легче?
- Паскалевский код мне абсолютно не знаком, писал его не я.

То [wl]  (23.02.05 13:22) [5]

под делфи скопмилировать для wince НЕ получится, причины описаны в нете, не помню точно какие, что-то связанное с сильной привязкой в реестру у борланда.

Не могли бы Вы в меня кинуть хотя бы примерной ссылкой? :)
На "Королевстве Делфи" нашел обсуждения по 9-ой версии:
Вот мнение Александра Вуколова:

Насчет PocketPC. Насколько я знаю, в Borland собирались делать поддержку .NET Compact Framework. Помнится, еще до анонса D2005, в конференциях писали, что поддержка будет, но похоже потом решили пока не включать поддержку CF в коммерческую версию. Почему - не знаю, им внутри виднее... Если не ошибаюсь, работе программ, скомпилированных Delphi for .NET на CF мешает какая-то несовместимость в RTL.

Но рядом есть совсем другое мнение:

люди я точно помню что при установке Delphi8 в рекламе промелькнули строки о том что теперь можно создавать проги для pocketPC ну а в 2005-ом думаю ето где нибудь должно быть.


:). Тоесть, уже понятно, что скомпилировать приложение в Делфи2005 для Pocket PC нельзя :(. Но почему - никто точно сказать не может.


 
by ©   (2005-02-23 14:50) [7]

pusrg   (23.02.05 14:31) [6]
:). Тоесть, уже понятно, что скомпилировать приложение в Делфи2005 для Pocket PC нельзя :(. Но почему - никто точно сказать не может.


Просто нет отдельно распостраняемого Compact Framework SDK, только в составе Visual Studio. Т.е. никакие  другие IDE не могут лицензионно чисто его использовать.

Я перешел с Delphi на С#. Примерно за месяц достаточно разобрался чтобы писать приложения для покета. Delphi и С# очень похожи, автор то один ))
Многое в С# писать быстрее и удобнее чем в Delphi. Правда есть и недостатки, например отсутствие глобальных переменных, приходится выкручиваться.
Так что мой выбор для покетов - С#


 
вредитель ©   (2005-02-23 14:51) [8]

Остается портировать паскалевский код на C++ или C# :(.


В Сети есть конверторы pas->cpp и наоборот, однако, что бесплатно, то древне, а что ново то ой сколько денег стоит, однако, говорят помогает. Впрочем, абсолютно полной автоматики от них ожидать не приходится и нужно многое руками править. И помогают, ессно если небыло использовано VCL.

А так, на мой взгляд, если портировать руками, то легче конечно на C#.


 
Soft ©   (2005-02-23 16:20) [9]

>>pusrg   (22.02.05 20:19)  
>>Уважаемые коллеги!

>>Подскажите можно ли скомпилировать приложение в новой версии Делфи2005 для работы на Pocket PC 2000(2002-2003)?

Нет.
http://delphimaster.net/view/14-1108996615/


 
вредитель ©   (2005-02-23 16:27) [10]

Так оказывается что, код, скомпилированный на Delphi.NET, не работает ни на каких платформах кроме Win32/Win64. На том же WinCE он не пойдет, там нужно компилировать программу специально под Net Framework Compact!!! Ну и где заявленная многоплатформенность и переносимость кода как на Java?
Ну так дельфи же, чего вы от нее хотели то?

простой пример. создайте обычное приложение в vs на c# (windows form). скомпилируйте, скопируйте на кпк и запустите - всё работает....
то же самое работает и наоборот: голая форма для wince запускается в winxp.

Порверил, воистину работает.


 
[wl]   (2005-02-23 16:55) [11]

Тут есть ещё один нюанс: выбор между c++ и c# гораздо глубже, чем просто выбор языка - это выбор платформы: Win32 или .NET. .NET-надстройка над win32 примерно как vcl (прошу за сравнение ногами не пинать). к чему это приводит? - программа для .net жрёт много ресурсов, работает с тормозами, в ней есть глюки, нету некоторых возможностей, которые есть в win32 (например, сам столкнулся - нельзя в качестве Brush использовать рисунок). И это притом, что кпк это не настольный комп, оперативки в ppc мало, скорость процессора небольшая...
но есть и достоинства - скорость разработки! и много-много полезных классов...

Насчёт ссылок - я насколько помню, читал это на диске журнала RSDN, так что скорее всего на rsdn.ru


 
вредитель ©   (2005-02-23 17:09) [12]

например, сам столкнулся - нельзя в качестве Brush использовать рисунок
Хм, а это чего это такое (незнаю, правда, есть ли в CF)?
System.Drawing.TextureBrush

Хотя, впрочем, с Windows Shell на Net действитедьно плохо играться, но WinAPI функции вызывать вполне можно. Переносимость, конечно теряется.


 
[wl]   (2005-02-23 17:30) [13]

System.Drawing.TextureBrush - есть только в некомпактной версии :( . через native-invoke делать было лень...


 
by ©   (2005-02-23 17:45) [14]

[wl]   (23.02.05 16:55) [11]
но есть и достоинства - скорость разработки! и много-много полезных классов...

Вот именно это и цениться, time to market, однако.


 
BorisMor ©   (2005-02-24 00:34) [15]

to pusrg
Если соберешся с духом и решиш перевести на C# посмотри вот это:
http://www.netcoole.com/delphi2cs.htm

По крайней мере помогает понять какие классы в С# аналогичны Delphi.


 
pusrg   (2005-02-24 14:10) [16]

To BorisMor ©   (24.02.05 00:34) [15]
Спасибо за ссылку. Думаю обязательно пригодится.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.05 c
14-1109751261
Gero
2005-03-02 11:14
2005.03.20
Просьба потестировать


1-1110109405
TeNY
2005-03-06 14:43
2005.03.20
Clipboard.Formats[] непонятна логика.


4-1107731888
romshtain
2005-02-07 02:18
2005.03.20
Как отловить хендл окна, которое находится..


1-1109843862
e-mike
2005-03-03 12:57
2005.03.20
TExcelApplication - OLE error 800A03EC.


14-1109653753
begin...end
2005-03-01 08:09
2005.03.20
С Днём рождения! 29 февраля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский