Порт FPC под WinCE/Pocket PC

Модератор: Модераторы

Сообщение Юра » 11.07.2006 19:37:56

Первое - скачать gdb для удаленной отладки на КПК.
Далее настроить либо Lazarus либо MSEide для работы с ppccrossarm и gdb.

Вывод графики также как в Win32. В wince API практичекси такой же как в Win32. Также есть GAPI для прямого доступа к видео буфферу.
Используется игрушками.
Юра
постоялец
 
Сообщения: 163
Зарегистрирован: 25.05.2005 10:20:09
Откуда: Украина, Киев

Сообщение Bohdan » 27.07.2006 17:08:27

Подскажите плиз, почему не работает прога (аналогичное на с++ - запускается).
компилю: ppcrossarm.exe test.pas
Test.pas:
{$MODE DELPHI}
uses windows,messages;
var hInstance : dword;
const
IDD_DIALOG1=129;
IDM_OK=40000;
{$R test.RES}

function DialogProc(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;
begin
result:=0;
case Message of
WM_CLOSE: begin
EndDialog ( wnd, 0 );
Result:=1;
end;
WM_COMMAND: begin
if ( wParam = IDM_OK) then begin
SendMessage (wnd, WM_CLOSE, 0, 0);
Result:=1;
end;
end;
end;
end;
begin
hInstance:=GetModuleHandle ( NIL );
InitCommonControls ();
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), 0, @DialogProc);
end.

Test.rc:
#define IDD_DIALOG1 129
#define IDOK 40000
#define IDCANCEL 40001
IDD_DIALOG1 DIALOG 0, 0, 168, 223
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK",IDOK,111,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,111,24,50,14
END
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv

Сообщение Юра » 28.07.2006 01:48:04

Я так подозреваю, что прога не компилится вообще или test.RES сделан неправильно.
Ресурсы в FPC компилятся утилитой windres. Для покета это будет arm-wince-windres.exe
Если указать
{$R test.RC}
то windres будет вызван автоматом при компиляции.
Также нужно в начале test.RC прописать
#include <windres.h>

Файл windres.h нужно скопировать из папки с windres для Win32 в папку где лежит arm-wince-windres.exe

После этого прога скомпилится и нормально запустится на покете.
Юра
постоялец
 
Сообщения: 163
Зарегистрирован: 25.05.2005 10:20:09
Откуда: Украина, Киев

Сообщение Bohdan » 28.07.2006 15:12:35

Может у меня ppcrossarm.exe не правильно собрался?
(компилил fpc2.0.2, а исходники беру с последней SVN).

Все компилит, ошибок он не выдает. Екзешка получается от 250кб до 350кб, смотря какие юниты подключаю (на vc++ аналолгичная прога занимает 4.5 кило :? :evil: )
Может из за того что версия fpc 2.0.2, а ppcrossarm.exe 2.1.1?
Откомпилированую прогу запускаю на эмуляторе. Он не матюкается, но ни чего не происходит. Даже вот такаю прога никакого результата не дает:

uses sysutils;
var i:integer;
begin
for i:=0 to 1000 do Beep;
end.
Bohdan
новенький
 
Сообщения: 87
Зарегистрирован: 11.05.2005 11:31:46
Откуда: Ukraine, Kyiv

Сообщение Юра » 28.07.2006 23:57:00

Для начала удали test.RES
Чтоб размер был нормальный используй ключик -Xs
Твой пример у меня весит 45КБ.
Компилить можно чем угодно. fpc 2.0.2 нормальный и даже рекомендуемый вариант для сборки ppcrossarm.
Я тоже запускаю на эмуляторе.
Кстати Beep может и не работать.
Попробуй вызвать MessageBox для теста.
Юра
постоялец
 
Сообщения: 163
Зарегистрирован: 25.05.2005 10:20:09
Откуда: Украина, Киев

Сообщение Phoenix » 17.08.2006 12:45:50

Ура, :) хоть что-то есть! Давно ищу паскаль для покета! Главное не бросайте это дело и побольше примеров/документации.
Phoenix
незнакомец
 
Сообщения: 1
Зарегистрирован: 10.06.2005 15:21:22

Сообщение hp_6510 » 23.09.2006 10:26:49

[удалил]
hp_6510
незнакомец
 
Сообщения: 1
Зарегистрирован: 23.09.2006 10:20:24

Пред.

Вернуться в WinCE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru