игры Cornered, KnXion, Pyraos, Triad

КПК на Windows CE.NET и старой Windows CE - от планшетов до смартфонов, а также клавиатурные КПК
Закрыто
ada
Доктор (4 lvl)
Сообщения: 201
Зарегистрирован: Ср июн 04, 2003 15:03

игры Cornered, KnXion, Pyraos, Triad

Сообщение ada » Пн мар 03, 2003 14:11

Речь вот об этих играх: http://www.randomly.com/cat-wince-en.html
Я уже упоминал их, когда приводил список софта, идущего на доте от ppc. Так вот, надо отметить, что игры эти shareware.. со всеми вытекающими.
Однако, на сайте в свободном доступе лежат исходники как графической библиотеки, использованной для написания этих игр, так и исходними самих игр. Повозившись с ними я пересобрал 4ре игры под ce.net. Теперь бесплатные.
Пока лежит тут (~4Мб): http://orsk.virtualave.net/ce/Randomly.zip
Содержимое архива забрасывайте на флешку, ибо общий размер приличный.

Хочется отметить, что игры не используют gapi и, в тоже время, очень неплохо выглядят. За что я уважаю создателя. Ну и опять же нам это только в плюс :)

Такую же инфу забросил и в каталог программ для ce.net.

p.s. Модератору: если мои инфа, а также сборка игр противоречат правилам конференции - ок, без вопросов.

VVincent
Студент (1 lvl)
Сообщения: 41
Зарегистрирован: Ср июн 04, 2003 15:03

To ADA: по поводу исходников(+)

Сообщение VVincent » Вт мар 04, 2003 13:08

Скачал вот тоже те исходники, и сразу куча вопросов возникла к уважаемому Ada aka Dima. Насколько я понимаю, фраза "повозившись с ними", предполагает не хилую проделанную работу по портированию кода под DOT.

Я-то сам только первый раз пытаюсь что-либо собрать под наладонник, поэтому, в данном деле еще серый новичок. Сразу прошу прощения, если спрошу что-нибудь очевидное или глупое;-) Насколько я понимаю, лучше всего для сборки использовать eVC4 с установленным SDK. Что я и сделал (кстати, Ada, а что используешь ты?)

Ну, само собой, создав для для всего этого безобразия workspace, добавив туда нужные проекты у меня толком ничего не собралось. Во-первых, кое-где используется заголовочный файл aygshell.h, которого у меня нет, а заодно и соответствующего lib-файла:) Насколько я понимаю, там должен быть объявлен набор методов из одноименной DLL из состава PPC2002 API.

Со строкой #if UNDER_CE >= 300 тоже не разобрался, что это за номер такой, версия ОС что ли, откуда он берется и какой он у нас на ДОТе?

Без aygshell.h все удачненько скомпилировалось, но как нетрудно догадаться, не слинковалось. К примеру, в display.cpp стоит вызов некого метода

public: void __thiscall ANIMOBJECT::RenderGraphic(...)

которого вроде как нигде и нет:( Может, для него какой LIB нужен? И так сплошь и рядом: больше сотни таких вот unresolved external symbol.

Может, ума наберусь и сам соберу эти игрухи, а пока вот в поисках истины. Буду благодарен любому комментарию или намеку - где хоть ее (истину) искать.
Кстати, а нет ли возможностью поделиться уже портированными исходниками? Ну, чтобы каждый из нас заново на одни и те же играбли не наступал;-)

ЗАРАНЕЕ СПАСИБО

Take care,
VVincent aka Andrew

mailto:dot@bandysl.ru

ada
Доктор (4 lvl)
Сообщения: 201
Зарегистрирован: Ср июн 04, 2003 15:03

ответ

Сообщение ada » Вт мар 04, 2003 16:52

> Насколько я понимаю, лучше всего для сборки использовать eVC4 с установленным SDK. Что я и сделал (кстати, Ada, а что используешь ты?)

Да, я тоже пользуюсь eVC и SDK. Вот только фраза "лучше всего для сборки использовать.." здесь как бы не имеет смысла, ибо ничем другим и не соберёшь :) Нету других средств.

> Ну, само собой, создав для для всего этого безобразия workspace, добавив туда нужные проекты у меня толком ничего не собралось.

Конечно, Вы сами решаете как вам удобнее, но я шел по пути наименьшего сопротивления -- не создавал проекты, т.к. в исходниках их нет. Ведь хорошо видно, что для сборки проекта используются только средства командной строки и, в принципе, уже всё готово -- есть батники, есть файл конфигурирования путей к исходникам, сборщику, компилятору и sdk, есть make-файл.. нужно лишь их корректно сконфигурить на конкретной машине.
Если же Вы решили на основе исходников создавать workspace в eVC4 -- нужно четко представлять в какой последовательности должны собираться составные части всего проекта, в каком виде и куда.

> Во-первых, кое-где используется заголовочный файл aygshell.h, которого у меня нет, а заодно и соответствующего lib-файла:) Насколько я понимаю, там должен быть объявлен набор методов из одноименной DLL из состава PPC2002 API.

aygshell - наследие PPC. Поэтому при портировании нужно отказываться от неё (не всегда в буквальном смысле, но здесь - именно в буквальном).

> Со строкой #if UNDER_CE >= 300 тоже не разобрался, что это за номер такой, версия ОС что ли, откуда он берется и какой он у нас на ДОТе?

Да, это версия ОС (3.00). Если Вы посмотрите на проект внимательнее, то увидите, что в тексте также встречается версия 2.11. Таким образом уже на этапе компиляции определяется под какую ОС собирается проект и включается тот или иной код.
К сожалению, строка #if UNDER_CE >= 300 не совсем верна в наше время. Видимо раньше считалось (MS убедила разработчиков?), что все операционки, начиная с 3й и выше, будут иметь эту злосчастную aygshell, потому частенько в исходниках приходится видеть такую вот проверку, за которой следует #include <aygshell.h>. Но вот у нас ce.net, т.е. версия 4.0 и эта проверка портит всю картину -- нету у нас такой библиотеки. Поэтому каждый раз приходится такую проверку править, т.е. заменять >= на ==.

> Без aygshell.h все удачненько скомпилировалось, но как нетрудно догадаться, не слинковалось.

По причине, о которой я сказал выше - в проекте в определеной последовательности создаются либы, которые потом подлинковываются.

> К примеру, в display.cpp стоит вызов некого метода
> public: void __thiscall ANIMOBJECT::RenderGraphic(...)
> которого вроде как нигде и нет:( Может, для него какой LIB нужен? И так сплошь и рядом: больше сотни таких вот unresolved external symbol.

Как так нет? А в ceanimcea_object.cpp?

void ANIMOBJECT::RenderGraphic (PRENDEROBJECT pro, PGRAPHIC pgrToDraw)
{
if (!pgrToDraw)
pgrToDraw = m.pgr;
......
......
}

Это ещё раз говорит о том, что вы попытались подлинковать несуществующую библиотеку (в данном случае ceanim.lib, которая должна быть к этому моменту уже собрана и доступна)


> Кстати, а нет ли возможностью поделиться уже портированными исходниками? Ну, чтобы каждый из нас заново на одни и те же играбли не наступал;-)

А смысл тогда? Вы взяли исходники, значит хотите разобраться сами. Если же я дам вам уже рабочее - всё соберётся и вы просто не ощутите на себе все те грабли, которые присутствуют при портировании. Разве не ради попытки самому всё это пройти вы взялись за это?

Могу подсобить с порядком действий.
Сначала читаем readme.html, затем внимательно правим setenv.reg или setenv.bat (в зависимости от операционки компа), слегка ковыряем wince.h (UNDER_CE==300) и дальше основной упор делаем на makefile.inc, где подменяем весь код, относящийся к ОС версии 2.11, на наш 4.0.
Обратить внимание, что после решения всех походовых проблем при сборке всё равно останется некоторое количество unresolved external symbols -- верный признак того, что в проекте используются дополнительные либы, которые нужно руками указать линковщику. Какие именно либы -- обычным поиском по всему sdk.

VVincent
Студент (1 lvl)
Сообщения: 41
Зарегистрирован: Ср июн 04, 2003 15:03

Great thanks!

Сообщение VVincent » Вт мар 04, 2003 20:09

ADA, спасибо за подробную консультацию!
Будет чем сегодня заняться вечером;)

Закрыто

Вернуться в «Windows CE.NET, Wincent 320, WinCE клавиатурные»