Первое - скачать gdb для удаленной отладки на КПК.
Далее настроить либо Lazarus либо MSEide для работы с ppccrossarm и gdb.
Вывод графики также как в Win32. В wince API практичекси такой же как в Win32. Также есть GAPI для прямого доступа к видео буфферу.
Используется игрушками.
Порт FPC под WinCE/Pocket PC
Модератор: Модераторы
-
Bohdan
- новенький
- Сообщения: 87
- Зарегистрирован: 11.05.2005 11:31:46
- Откуда: Ukraine, Kyiv
- Контактная информация:
Подскажите плиз, почему не работает прога (аналогичное на с++ - запускается).
компилю: 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
компилю: 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
Я так подозреваю, что прога не компилится вообще или 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
После этого прога скомпилится и нормально запустится на покете.
Ресурсы в FPC компилятся утилитой windres. Для покета это будет arm-wince-windres.exe
Если указать
{$R test.RC}
то windres будет вызван автоматом при компиляции.
Также нужно в начале test.RC прописать
#include <windres.h>
Файл windres.h нужно скопировать из папки с windres для Win32 в папку где лежит arm-wince-windres.exe
После этого прога скомпилится и нормально запустится на покете.
-
Bohdan
- новенький
- Сообщения: 87
- Зарегистрирован: 11.05.2005 11:31:46
- Откуда: Ukraine, Kyiv
- Контактная информация:
Может у меня ppcrossarm.exe не правильно собрался?
(компилил fpc2.0.2, а исходники беру с последней SVN).
Все компилит, ошибок он не выдает. Екзешка получается от 250кб до 350кб, смотря какие юниты подключаю (на vc++ аналолгичная прога занимает 4.5 кило
)
Может из за того что версия fpc 2.0.2, а ppcrossarm.exe 2.1.1?
Откомпилированую прогу запускаю на эмуляторе. Он не матюкается, но ни чего не происходит. Даже вот такаю прога никакого результата не дает:
uses sysutils;
var i:integer;
begin
for i:=0 to 1000 do Beep;
end.
(компилил fpc2.0.2, а исходники беру с последней SVN).
Все компилит, ошибок он не выдает. Екзешка получается от 250кб до 350кб, смотря какие юниты подключаю (на vc++ аналолгичная прога занимает 4.5 кило
Может из за того что версия fpc 2.0.2, а ppcrossarm.exe 2.1.1?
Откомпилированую прогу запускаю на эмуляторе. Он не матюкается, но ни чего не происходит. Даже вот такаю прога никакого результата не дает:
uses sysutils;
var i:integer;
begin
for i:=0 to 1000 do Beep;
end.
Для начала удали test.RES
Чтоб размер был нормальный используй ключик -Xs
Твой пример у меня весит 45КБ.
Компилить можно чем угодно. fpc 2.0.2 нормальный и даже рекомендуемый вариант для сборки ppcrossarm.
Я тоже запускаю на эмуляторе.
Кстати Beep может и не работать.
Попробуй вызвать MessageBox для теста.
Чтоб размер был нормальный используй ключик -Xs
Твой пример у меня весит 45КБ.
Компилить можно чем угодно. fpc 2.0.2 нормальный и даже рекомендуемый вариант для сборки ppcrossarm.
Я тоже запускаю на эмуляторе.
Кстати Beep может и не работать.
Попробуй вызвать MessageBox для теста.
