Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread compiling project for WinCE:
Sat, Jan 2 2010 2:21 AMPermanent Link

"Fabio Codebue @ GestionaleOpen"
I have no problem to compile my application to Win32 enviroment with
Lazarus 0.9.29 but when I switch to WinCE enviroment I received this
error:

C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
2\Lazarus (Win32-Unicode) 0.926\code\source\edbenv.pas(449,46) Error:
Identifier not found "GetCurrentDirectoryW"

some ideas?
Fabio Codebue
Gestionale Open srl
Sat, Jan 2 2010 12:39 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Fabio,

<< I have no problem to compile my application to Win32 enviroment with
Lazarus 0.9.29 but when I switch to WinCE enviroment I received this error:

C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version 2\Lazarus
(Win32-Unicode) 0.926\code\source\edbenv.pas(449,46) Error: Identifier not
found "GetCurrentDirectoryW" >>

See here for more information:

http://www.elevatesoft.com/newsgrp?action=openmsg&group=16&msg=10515&page=1#msg10515

You need to make sure that the unit directories are changed so that they
refer to the Lazarus (WinCE) installation directory instead:

C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version 2\Lazarus
(WinCE) 0.926\code\source

You'll need to make sure to download and install the version of ElevateDB
for Lazarus (WinCE), if you haven't done so already.

--
Tim Young
Elevate Software
www.elevatesoft.com

Sun, Jan 3 2010 5:20 AMPermanent Link

"Fabio Codebue @ GestionaleOpen"
On Sat, 2 Jan 2010 12:39:09 -0500, "Tim Young [Elevate Software]"
<timyoung@elevatesoft.com> wrote:

>Fabio,
>
><< I have no problem to compile my application to Win32 enviroment with
>Lazarus 0.9.29 but when I switch to WinCE enviroment I received this error:
>
> C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version 2\Lazarus
>(Win32-Unicode) 0.926\code\source\edbenv.pas(449,46) Error: Identifier not
>found "GetCurrentDirectoryW" >>
>
>See here for more information:
>
>http://www.elevatesoft.com/newsgrp?action=openmsg&group=16&msg=10515&page=1#msg10515
>
>You need to make sure that the unit directories are changed so that they
>refer to the Lazarus (WinCE) installation directory instead:
>
> C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version 2\Lazarus
>(WinCE) 0.926\code\source
>
>You'll need to make sure to download and install the version of ElevateDB
>for Lazarus (WinCE), if you haven't done so already.

I have installed

1. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus 0.9.26
(Win32-Unicode)
2. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus (WinCE) 0.926

but when I try to compile ElevateDB Run-Time Package (edb203o092run)
tha I find in C:\Program Files (x86)\ElevateDB LCL Standard with
Source\Version 2\Lazarus (Win32-Unicode) 0.926\code\source it generate
error...

I have no find other package to installl..

The strange thing is the if I compile and install for Win32 I have no
problem.
Fabio Codebue
Gestionale Open srl
Mon, Jan 4 2010 11:35 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Fabio,

<< I have installed

1. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus 0.9.26 (Win32-Unicode)
2. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus (WinCE) 0.926

but when I try to compile ElevateDB Run-Time Package (edb203o092run) tha I
find in C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
2\Lazarus (Win32-Unicode) 0.926\code\source it generate error... >>

The design-time package provided with ElevateDB for Lazarus should be
compilable as-is, and there shouldn't be any other steps necessary to
recompile the Lazarus IDE with them.  The only time you need to change the
compiler settings, is when compiling an application that was developed with
the Win32 version against the WinCE codebase for deployment to a mobile
emulator or device.

<< I have no find other package to installl.. >>

You normally install the design-time package only (edb203o0926design), and
it will automatically include the runtime package in the compilation.  Above
you state that you are trying to compile the run-time package, and this
isn't necessary.  You only need to install/compile the design-time package
into the IDE, and then compile your application as normal.

<< The strange thing is the if I compile and install for Win32 I have no
problem. >>

I'm not sure what you mean ?  I thought that you said above that you're
trying to compile this in the Win32 Lazarus IDE, using the Win32 runtime
package, and getting an error ?

Could you post me your compiler options (Project/Compiler Options/Show
Options), and indicate what you're trying to compile for (Win32-ANSI,
Win32-Unicode, WinCE) ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Tue, Jan 5 2010 2:38 AMPermanent Link

"Fabio Codebue @ GestionaleOpen"
On Mon, 4 Jan 2010 11:35:58 -0500, "Tim Young [Elevate Software]"
<timyoung@elevatesoft.com> wrote:

>Fabio,
>
><< I have installed
>
> 1. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus 0.9.26 (Win32-Unicode)
>2. ElevateDB LCL-STD-SRC 2.03 Build 6 for Lazarus (WinCE) 0.926
>
> but when I try to compile ElevateDB Run-Time Package (edb203o092run) tha I
>find in C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
>2\Lazarus (Win32-Unicode) 0.926\code\source it generate error... >>
>
>The design-time package provided with ElevateDB for Lazarus should be
>compilable as-is, and there shouldn't be any other steps necessary to
>recompile the Lazarus IDE with them.  The only time you need to change the
>compiler settings, is when compiling an application that was developed with
>the Win32 version against the WinCE codebase for deployment to a mobile
>emulator or device.
>
><< I have no find other package to installl.. >>
>
>You normally install the design-time package only (edb203o0926design), and
>it will automatically include the runtime package in the compilation.  Above
>you state that you are trying to compile the run-time package, and this
>isn't necessary.  You only need to install/compile the design-time package
>into the IDE, and then compile your application as normal.
>
><< The strange thing is the if I compile and install for Win32 I have no
>problem. >>
>
>I'm not sure what you mean ?  I thought that you said above that you're
>trying to compile this in the Win32 Lazarus IDE, using the Win32 runtime
>package, and getting an error ?
>
>Could you post me your compiler options (Project/Compiler Options/Show
>Options), and indicate what you're trying to compile for (Win32-ANSI,
>Win32-Unicode, WinCE) ?


Error: C:\Program Files (x86)\ElevateDB LCL Standard with
Source\Version 2\Lazarus (Win32-Unicode)
0.926\code\source\edbenv.pas(449,46) Error: Identifier not found
"GetCurrentDirectoryW"

Compiler options:

-MObjFPC -Scgi -O1 -TWinCE -Parm -gl -WG -vewnhi -l
-FiC:\work\svn\go_utenti\C02_BOSCHINI\src\lib\arm-wince\
"-FuC:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
2\Lazarus (Win32-Unicode) 0.926\code\source\"
-FuC:\lazarus\lcl\units\arm-wince\
-FuC:\lazarus\lcl\units\arm-wince\wince\
-FuC:\lazarus\packager\units\arm-wince\
-FuC:\work\svn\go_utenti\C02_BOSCHINI\src\ -Fu.
-FUC:\work\svn\go_utenti\C02_BOSCHINI\src\lib\arm-wince\
-ogomaga_WINCE.exe -dLCL -dLCLwince


when I show options lazarus tell me:
the unit search path contain a not existing directory
and after
unit search path contain unusual characters
Fabio Codebue
Gestionale Open srl
Tue, Jan 5 2010 5:34 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Fabio,

<< Error: C:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
2\Lazarus (Win32-Unicode) 0.926\code\source\edbenv.pas(449,46) Error:
Identifier not found "GetCurrentDirectoryW"

Compiler options: >>

You're trying to compile a Windows CE application against the Win32 source
units, which is why you're getting the error.

Your compiler options should look like this:

-MObjFPC -Scgi -O1 -TWinCE -Parm -gl -WG -vewnhi -l
-FiC:\work\svn\go_utenti\C02_BOSCHINI\src\lib\arm-wince\
"-FuC:\Program Files (x86)\ElevateDB LCL Standard with Source\Version
2\Lazarus (WinCE) 0.926\code\source\"
^^^^^^^^^^^^^^^^^^^^^^^^^^ Changed from (Win32-Unicode) to (WinCE)
-FuC:\lazarus\lcl\units\arm-wince\
-FuC:\lazarus\lcl\units\arm-wince\wince\
-FuC:\lazarus\packager\units\arm-wince\
-FuC:\work\svn\go_utenti\C02_BOSCHINI\src\ -Fu.
-FUC:\work\svn\go_utenti\C02_BOSCHINI\src\lib\arm-wince\
-ogomaga_WINCE.exe -dLCL -dLCLwince

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, May 7 2010 10:50 AMPermanent Link

Kick

ENK Software

I am strugling with the same problems

<<You're trying to compile a Windows CE application against the Win32 source
units, which is why you're getting the error.
Your compiler options should look like this:>>

How do you change this FU setting? I have changed it in the runtime package now but i am not sure this is the place to do it. And when you switch your project target platform, do you have to manually change this every time. Or can it be that it finds the right source path depending on the chosen target platform??? Like it does for the LCL components?

My compiler settings now are:
-MObjFPC
-Sgi
-O1
-TWinCE
-Parm
-Xs
-WG
-vewni
-l
-Fu..\..\ThirdParty\ThirdPartyLazarus\ElevateDB-WinCE\code\
-FuC:\lazarus\lcl\units\arm-wince\
-FuC:\lazarus\lcl\units\arm-wince\wince\
-FuC:\lazarus\packager\units\arm-wince\
-Fu.
-oshoplist.exe
-dEDB_UNICODE
-dLCL
-dLCLwince

And it gives the follow error:
D:\ThirdParty\ThirdPartyLazarus\ElevateDB-Win32\code\source\edbenv.pas(257,33) Error: Identifier not found "GetLocaleInfoA"

So it still means it searches in the wrong path.... could this be because I included the WIN32 runtime packes as required? There is no package in my WinCE dir so I don't know what package I should include otherwise...
Fri, May 7 2010 11:47 AMPermanent Link

Kick

ENK Software

Found a description somewhere from Richard ??:
This was very helpfull for me. Could you put it somewhere on between the FAQ or Technical Articles for other beginners as well?


Installing Microsoft Device Emulator
=======================

Visual Studio contains Microsoft Device Emulator which allows the emulation of mobile
devices.  If you do not have Visual Studio you can obtain the emulator from the following
links.

Download Device Emulator 2.0
www.microsoft.com/downloads/details.aspx?familyid=
13F5DE85-30CD-4506-9C5B-A2068FA1EE9E&displaylang=en.

Download Device Emulator 3.0
http://www.microsoft.com/downloads/details.aspx?familyid=A6F6ADAF-12E3-4B2F-A394-356E2C2FB114&displaylang=en

The next step is to obtain some Windows CE OS kernel image files.  This can be obtained
from the Windows Mobile 6 SDK.  This download is several hundred MBytes.  

Download Windows Mobile 6 SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e&displaylang=en

Copy the OS kernel files  from  
•   C:\Program Files\Windows Mobile 6 SDK folder
•   C:\Program Files\Microsoft Device Emulator\1.0.

OS kernel files have a bin extension.  Examples are PPC_USA_GSM_VR.bin  and
PPPC_USA_GSM_320x320_VR.bin.

Websites
Below are some links which helped me.

http://dotnet.sys-con.com/node/315038
http://blog.enterprisemobile.com/2008/05/device-emulator-setup-1/
http://msdn.microsoft.com/en-au/windowsmobile/bb264327.aspx


Running the emulator
•   Open an MS-DOS Command windows.
•   cd \Program Files\Microsoft Device Emulator\1.0
•   Run the emulator by:
      DeviceEmulator.exe PPC_USA_GSM_VR.bin /memsize 256 /cpucore ARMv5.
•   If you do not specify the memory size, it defaults to 16 which is useless.  Value must
be in the range 64 to 256.
•   Use File, Configure - Set a Shared Folder.  This allows you to copy files from your PC
to the emulator.
•   Wait until the Windows CE “desktop” appears.

Copying Files to Emulator
•   On the PC, copy the required files to the Emulator’s Share Folder.
•   Use the emulator to copy the files from the Shared Folder to the required folders on My
Device.

Configuration Settings for Lazarus
======================

Winsock
•   An error in winsock.pp is documented by http://bugs.freepascal.org/view.php?id=13614.
•   Copy the file C:\lazarus\fpc\2.2.4\source\rtl\wince\winsock.pp to the C:\Program
Files\ElevateDB LCL Standard with Source\Version 2\Lazarus (WinCE) 0.926\code\source folder
•   Make the changes to the winsock.pp.
•   After you Build the Wince application, ensure that winsock.o and winsock.ppu have been
created in your project folder.

Project Options
-----------------
Miscellaneous tab
•   Project is runnable - unchecked
•   Save .lrs files - unchecked
•   All other options - checked

Project Inspector
-------------------

Remove EDBRun (>=2.0) from the list

Environment Options
------------------------
Lazarus directory - C:\lazarus\
Compiler path - C:\lazarus\fpc\2.2.4\bin\i386-win32\fpc.exe
FPC source directory - C:\lazarus\fpc\2.2.4\source\
Make path - C:\lazarus\fpc\2.2.2\bin\i386-win32\make.exe


Compiler Options - Windows 32 Applications
--------------------------------------------------

Paths tab
Other Unit files
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\$(LCLWidgetType)\
•   $(LazarusDir)\packager\units\$(TargetCPU)-$(TargetOS)\
•   C:\Program Files\ElevateDB LCL Standard with Source\Version 2\Lazarus (Win32-Unicode)
0.926\code\source\

Include files
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\$(LCLWidgetType)\

LCL Gadget Type - win32/win64

Parsing tab
Assembler style - Default

Code tab
Target OS - Win32
Target CPU family - i386
Target Processor - default
Optimization - Level 1

Linking tab
Check Strip Symbols from Executable
Check Win32 GUI application


Compiler Options - WinCE Applications
--------------------------------------------

Paths tab
Other Unit files
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\$(LCLWidgetType)\
•   $(LazarusDir)\packager\units\$(TargetCPU)-$(TargetOS)\
•   C:\Program Files\ElevateDB LCL Standard with Source\Version 2\Lazarus (Wince)
0.926\code\source\

Include files
•   $(LazarusDir)\lcl\units\$(TargetCPU)-$(TargetOS)\$(LCLWidgetType)\

LCL Gadget Type - wince

Parsing tab
Assembler style - Default

Code tab
Target OS - Wince
Target CPU family - ARM
Target Processor - default
Optimization - Level 1

Linking tab
Check Strip Symbols from Executable
Check Win32 GUI application

Building Lazarus Applications
---------------------------------
•   Use Build All
•   Do not run application from within IDE.
Fri, May 7 2010 1:43 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Kick,

<< Found a description somewhere from Richard ??:
This was very helpfull for me. Could you put it somewhere on between the FAQ
or Technical Articles for other beginners as well? >>

Yes, I actually have this on the list for this weekend along with some other
improvements to the web site.

--
Tim Young
Elevate Software
www.elevatesoft.com
Image