Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Application läuft nicht auf WinMobile 6.1 Pro (https://www.delphipraxis.net/128208-application-laeuft-nicht-auf-winmobile-6-1-pro.html)

torud 26. Jan 2009 10:32


Application läuft nicht auf WinMobile 6.1 Pro
 
Hallo Wissende,

ich habe mit Lazarus eine kleine Testapplikation geschrieben, um zu sehen, wie sie auf meinem Handy aussieht. Lazarus liegt in der Version 0.9.24 vor. Auf meinem Laptop läuft die RiesenEXE. Warum meldet mir Windows Mobile also, dass die kopierte Exe kein für ein PoketPC geeignetes Programm ist?

Hier mal der SourceCode des Programms:

Delphi-Quellcode:
unit frm_main;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, DbCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
     with RadioGroup1 do
          begin
             Caption:= 'Von welchem Land ist Zagreb die Hauptstadt?';
             Items.Add('Deutschland');
             Items.Add('Kroatien');
             Items.Add('Slovenien');
          end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if RadioGroup1.ItemIndex = 1 then
   ShowMessage('richtig')
  else
   ShowMessage('falsch');
end;

initialization
  {$I frm_main.lrs}

end.

Clemens L. 26. Jan 2009 10:35

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Du musst dir die CrossCompile Pakete für WinCE besorgen, und die Anwendung extra für Windows Mobile kompilieren.

:hi:

Bernhard Geyer 26. Jan 2009 10:40

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Windows Mobile hat nicht viel mit "normalen" Widows gemeinsam. Weder die API's noch die Prozesorarchitektur.

Clemens L. 26. Jan 2009 10:58

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Viele Standard API's sind gleich, natürlich haben beide Systeme auch eigene API's. Allerdings lässt sich Code mit Lazarus oft ohne Änderungen auch für Windows Mobile kompillieren, auch wenn man auf Windows API's zugreift.

Natürlich haben sie eine andere Prozessorarchitektur, das ist ja auch einer der Gründe warum man überhaupt neu kompillieren muss.

:hi:

matashen 26. Jan 2009 12:02

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Dabei gilt auch zu beachten, das PocketPCs meist einen ARM Prozessor und keinen x86 haben.
Andere Architektur=anderer Mikrocode = exe nicht Lauffähig.

Also beim Crosscompilen auch aufpassen das die Richtige Prozessorplattform eingestellt ist.

Gruß Matthias

generic 26. Jan 2009 12:17

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Ist die VCL aus dem Freepascal Windows Mobile kompatibel?

matashen 26. Jan 2009 15:10

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Jein,

für WinCE ist noch nicht alles portiert,

ich denke aber die Lazarus Leute freuds wenn sich da jemand einbringt.

Acteullen Status gibts

hier

Für die Projekte die ich bisher gemacht habe, hatte ich alles nötige. Ein paar API-Aufrufe musste ich wegen WLAN-Verbindung machen, aber dis war auch nicht die Welt.

Gruß Matthias

torud 18. Apr 2009 15:20

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Zitat:

Zitat von matashen
Dabei gilt auch zu beachten, das PocketPCs meist einen ARM Prozessor und keinen x86 haben.
Andere Architektur=anderer Mikrocode = exe nicht Lauffähig.

Also beim Crosscompilen auch aufpassen das die Richtige Prozessorplattform eingestellt ist.

Gruß Matthias

Wo kann ich denn weiterführende Hilfe zu diesem Thema finden? Ich habe keine Ahnung was ich mir wo herunterladen soll und wo ich was einzustellen habe, damit es funktioniert.

Schade, dass es keine fertige Installationsroutine gibt, wo man einfach seine Umgebung auswählen kann und im Hintergrund alles eingestellt wird...Oder gibts sowas?

JamesTKirk 19. Apr 2009 12:49

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Zitat:

Zitat von torud
Schade, dass es keine fertige Installationsroutine gibt, wo man einfach seine Umgebung auswählen kann und im Hintergrund alles eingestellt wird...Oder gibts sowas?

Doch, die gibt es. Zumindest für Lazarus >= 0.9.26. Lade dir hier Lazarus für Windows und für WinCE (cross-compiler) runter und installier beides (ich weiß jetzt allerdings nicht, wie sich das mit einem bereits installiertem 0.9.24 verträgt :? ). Ich sehe gerade, dass es unter 0.9.24 auch einen WinCE-Installer gibt, allerdings wurden seit dieser Version einige Bugs gefixt - ich empfehle also eine Aktualisierung :mrgreen:

Ist alles installiert, musst du in den Compilereinstellungen unter 'Pfade' die 'LCL-Schnittstelle' auf 'WinCE' umstellen und bei 'Quelltext' das 'Zielbetriebssystem' ebenfalls, sowie die 'Ziel-CPU' auf 'ARM'. Dann einfach kompilieren, auf den Pocket-PC jagen und rumspielen.

Bzgl Dateigröße (was vorwiegend die Debuginfos sind) musst du unter Linken 'Zeilennummern (...) anzeigen' aus- und 'Debuggersymbole (...) entfernen' einschalten. Zudem kannst du auch noch das Smartlinking einschalten (dabei die Checkbox 'Smartlinkbar' unter Quelltext nicht vergessen. ;)

Gruß,
Sven

torud 19. Apr 2009 13:10

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Genau das war es. Nun läufts. Jetzt muss ich mir nur noch Hilfe zum Thema zu grosse EXE-Dateien suchen. :)

matashen 22. Apr 2009 09:28

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Ich hab das WE ein Tool gefunden der die exen packt ohne was raus zu schmeissen, ich seh mir das heut Abend mal an und Posts dann hier rein.

Gruß Matthias

torud 22. Apr 2009 10:02

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Cool. Da bin ich ja mal gespannt...Ich habe zwar auch gesehen, dass es über/für Lazarus diverse Portale gibt, aber da die Steps zum Minimieren der Größe der Exe-Datei nur kurz umrissen werden und mit Fachbegriffen nur so gespickt sind, nützzt mir selbst mein eigentlich gutes Englisch nur wenig.

Grundessenz der Tipps ist eigentlich, Schalter am Compiler zu ändern, respektive die Units zu entfernen, die man nicht braucht...Das wiederum benötigt eigentlich etwas an Erfahrung...

Eigentlich wollte ich mir mit dem zu erstellenden Tool Daten aus meiner mySql-Datenbank über einen HTTP-Post holen, aber so wie das bisher überblicke, ist da noch keine Komponente, mit der man das komfortabel machen könnte. Irre ich!? (Ja ja, ich weiß, neue Frage neuer Thread)

matashen 22. Apr 2009 10:17

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Ne ich hab auf einem treffen in Paris nen Programmierer aus Belgien getroffen, und der hat mir ein progrämmchen gezeigt da musst du deine erzeugte exe nur drauf ziehen und die Exe schrumpft dann auf 20% zusammen. gezeigt hat er mirs mit einer 1MB exe und die war dann nur noch 200KB groß ohne Einschränkungen der Porgramm funktionalität. Aber wie gesagt ich muss mir den Stuff heut erst noch durchsehen. Hab da ne ganze Menge an Zeuch bekommen und das will ich erstmal durchgucken.

Ich meld mich hier dann

Gruß Matthias

Morphie 22. Apr 2009 11:22

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Du meinst nicht UPX, oder?

matashen 22. Apr 2009 11:39

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Ja ich glaub so heists

hitzi 22. Apr 2009 11:52

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Interessanter Thread dazu.

matashen 22. Apr 2009 12:06

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
ja allerdings,

man lernt nie aus, obwohl der Thread schon 5 Jahre auf dem Buckel hat.

Ich muss aber sagen das Speichermanagement ist mir piep wenn ich nur eine Anwendung auf nem Pocket grad am laufen hab, ists mir wichtiger das der Transfer zum PDA übers WLAN nicht ewig dauert.

Hab grad getestet. Eine EXE was mit LAZARUS 10MB hat habe ich auf 3MB stauchen können und das ist dann wesentlich fixer zu übertragen.

Das finetuning von Lazarus für kleinere Dateien ist mit sicherheit Sinnvoller, aber da hab ich nicht den Nerv dazu Stundenlang rumzubasteln bis das passt.
Wird zeit das das Lazarusteam da ein einfaches Tool macht was das automatisiert.

Gruß Matthias

hitzi 22. Apr 2009 12:22

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Die Übertragung erfolgt aber im Idealfall nur einmal. Dafür wird das Programm später häufig auf dem PDA gestartet. Jedesmal wird vor dem Programmstart das Programm entpackt (zusätzliche Zeit) und belegt am Ende im Speicher mehr Platz als die ungepackte Variante. Und genau diese beiden Faktoren(Zeit/CPU und freier Arbeitsspeicher) sind doch bei einen PDA noch kritisch zu betrachten, oder?

JamesTKirk 22. Apr 2009 12:28

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Ich hatte das in meinem Post oben zwar schon erwähnt, aber hier die entscheidende Stelle noch einmal:

Zitat:

Zitat von JamesTKirk
Bzgl Dateigröße (was vorwiegend die Debuginfos sind) musst du unter Linken 'Zeilennummern (...) anzeigen' aus- und 'Debuggersymbole (...) entfernen' einschalten. Zudem kannst du auch noch das Smartlinking einschalten (dabei die Checkbox 'Smartlinkbar' unter Quelltext nicht vergessen. ;)

Die ganzen Sachen, welche die Exe so aufblähen sind die Debuginfos (die Sachen, die der Debugger braucht, um euch nette Infofenster in der IDE anzeigen zu können). Diese können wie oben beschrieben ganz einfach aus der IDE heraus entfernt werden (2 Häckchen und einmal neu kompilieren!). Natürlich kann man dann das Debuggen vergessen, aber is ja auch mehr für Release gedacht ;)

Der Größenunterschied ist dann übrigens zwischen 9 und 10 MB!

Grüße,
Sven

matashen 22. Apr 2009 12:46

Re: Application läuft nicht auf WinMobile 6.1 Pro
 
Nur bei mir funzt das nicht, hab aber noch ne alte 0.9.1.17 Version,

jetzt wirds aber off-topic... ich mach da bei Bedarf dann nochma nen Thread auf - ist besser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz