Hi,
I have been trying to write a simple command line only application for a Win CE device. After having some initial trouble with the compilation, I re-read all the forum posts I could find on setting up this environment.
To ensure I was working in a clean environment, I grabbed an old laptop, wiped it and installed a fresh version of Windows 7 32bit. After all the standard updates were complete I installed the latest release of Lazarus and the ARM for Win32 cross compiler (lazarus-1.0.10-fpc-2.6.2-win32.exe and lazarus-1.0.10-fpc-2.6.2-cross-arm-wince-win32.exe).
I then created a new "Console Application" and wrote a simple "Hello World" type app. For a first test I set the Code Generation to Win32 / i386, compiled and ran the program successfully on the laptop. It ran without errors and produced some basic text on the command line, then finished. I copied the exe over to the Win CE device and got a "Cannot execute" error,
as expected.
After changing the code generation to WinCE and ARM processor, and setting the LCLWidgetType to wince, I re-compiled the application. Now when I tried to run it on the laptop I get a "not a valid Win32 application" error,
as expected.
I then copied this new exe over to the WinCE device and run it, it executes without reporting any errors, but it does not produce any output in the command console.
It would appear that the cross compiler is working correctly in so far as it is creating a valid ARM based executable file, but I can't seem to get any output.
The test application I am using just uses simple
writeln('Hello');
code - I am not (yet) trying to call any specific units. I have tried with the LCLWidgetType set and without it (I would have thought being console only, it probably wouldn't use the LCL widgets anyway), but it does not make any difference.
The WinCE device is from DLOG
http://www.dlog.com/en/products/7-industrial-computer/dlog-xmt-57/xmt-57-description/ and reports its OS as Windows CE 6.0 R3. When I first open the command prompt it reports as being "Pocket CMD v 6.00".
Is there something simple I am missing here?