View Issue Details

IDProjectCategoryView StatusLast Update
0036558LazarusLCLpublic2020-01-13 19:19
ReporterKarl-Michael Schindler Assigned Towp  
Status resolvedResolutionfixed 
PlatformdarwinOSMac OS X 
Product Version2.0.7 (SVN) 
Summary0036558: Commit 62400 breaks building wince-arm and wince-i386
DescriptionAfter commit 62400 building the cross parts for the targets wince-arm and wince-i38 breaks with

Compiling lazhelpintf.pas
lazhelphtml.pas(389,8) Error: Identifier not found "ShellExecute"

Steps To Reproducesvn up -r 62400
make registration lazutils codetools lcl packager basecomponents LCL_PLATFORM=wince OS_TARGET=wince PP=ppcarm CPU_TARGET=arm
Additional InformationI do not think, it really matters, but this is on macOS with fpc 3.0.4. Since the same has been done on trunk with revision 62387, I assume that trunk is broken in the same way. Has to be confirmed, though.
TagsNo tags attached.
Fixed in Revision62542 (trunk), 62543 (fixes)
Attached Files


related to 0035659 resolvedwp HtmlHelp example fails to load MicrosoftEdge as the viewer 



2020-01-12 16:05

developer   ~0120363

I don't have access to WinCE, so I'm just guessing. Could you try again after replacing the define {$IFDEF WINDOWS} in LazHelpHTML by {$IFDEF MSWINDOWS} - AFAIK this should prevent WinCE from seeing the ShellAPI unit in "uses".

Bart Broersma

2020-01-12 16:50

developer   ~0120365

Last edited: 2020-01-12 16:50

View 2 revisions

@wp: You can just cross-compile for WinCE a program that uses the lazhelphtml.pas unit and see what the compiler thinks of it?
No need to have a WinCE at all.

Karl-Michael Schindler

2020-01-12 17:23

reporter   ~0120367

After changing to {$IFDEF MSWINDOWS} the build runs through. If this is good enough, it should then be applied to trunk as well.

Note to wp: Maybe, the target wince-i386 is easier for you to cross compile:

make registration lazutils codetools lcl packager basecomponents LCL_PLATFORM=wince OS_TARGET=wince PP=ppc386 CPU_TARGET=i386

Bart Broersma

2020-01-12 22:12

developer   ~0120384

After that, someone with a WinCE device or emulator should test wether the unit then still works (or is it only ever supposed to be used by the Lazarus IDE iteself? In that case it really doesn't matter as long as it compiles, since the IDE will never run on WinCE.)

Karl-Michael Schindler

2020-01-12 22:18

reporter   ~0120385

No wince device, here. Just checking cross compile.


2020-01-12 23:01

developer   ~0120387

Still fighting to setup a cross-compiler...

Bart, according to, the previously used define WINDOWS is valid for all Windows variants, while MSWINDOWS is for all except for WinCE. So the only risk of making this change is that the fix of 0035659 (html help not finding the Edge browser) could not work on WinCE. I think this risk is tolerable compared with the inability to cross-compile an application for this target. If you agree I'd apply the modification to both trunk and fixes.

The implementation of the function OpenURL in contains an IFDEF'ed section for WinCE using ShellExecuteEx instead of ShellExecuteW in the ELSE part. Therefore, I think the functionality of ShellExecute in 0035659 could be substituted in a similar way for WinCE. But being unable to test I do not want to do anything in this direction.

Bart Broersma

2020-01-12 23:46

developer   ~0120388

If you have current fpc, then install the wince crosscompiler, available for download on the official pages.
In Lazarus select the proper target (WinCe and arm as cpu), then just compile.

There are officail emulators from MS you can install to test wince executables.
See also
I had one on my (now totally dead) old PC and used to test with that.

ATM we don't have an (un)offcial maintainer for the WinCE WS (which gets broken quite often as a result).

jamie philbrook

2020-01-13 01:50

reporter   ~0120389

Last edited: 2020-01-13 01:51

View 2 revisions

I am the one submitted that change and @wp followed through with it.

I just changed the defines to MSWINDOWS and recompiled, it seems to work ok on my Windows machines.

Maybe we could use a $IFNDEF WinCe instead along with the added inclusion of the MSWINDOWS


2020-01-13 12:57

developer   ~0120401

Replaced the two related {$IFDEF Windows} by {$IFDEF MSWindows} in unit LazHelpHtml, left the third occurence intact. The Lazarus helphtml example which uses LazHelpHtml now does cross-compile to WinCE. Applied to both trunk and fixes.

Please test again and close if ok, otherwise reopen.

Issue History

Date Modified Username Field Change
2020-01-11 22:49 Karl-Michael Schindler New Issue
2020-01-12 14:28 Bart Broersma Relationship added related to 0035659
2020-01-12 14:28 Bart Broersma Assigned To => wp
2020-01-12 14:28 Bart Broersma Status new => assigned
2020-01-12 16:05 wp Note Added: 0120363
2020-01-12 16:05 wp Status assigned => feedback
2020-01-12 16:05 wp LazTarget => -
2020-01-12 16:50 Bart Broersma Note Added: 0120365
2020-01-12 16:50 Bart Broersma Note Edited: 0120365 View Revisions
2020-01-12 17:23 Karl-Michael Schindler Note Added: 0120367
2020-01-12 17:23 Karl-Michael Schindler Status feedback => assigned
2020-01-12 22:12 Bart Broersma Note Added: 0120384
2020-01-12 22:18 Karl-Michael Schindler Note Added: 0120385
2020-01-12 23:01 wp Note Added: 0120387
2020-01-12 23:46 Bart Broersma Note Added: 0120388
2020-01-13 01:50 jamie philbrook Note Added: 0120389
2020-01-13 01:51 jamie philbrook Note Edited: 0120389 View Revisions
2020-01-13 12:57 wp Status assigned => resolved
2020-01-13 12:57 wp Resolution open => fixed
2020-01-13 12:57 wp Fixed in Revision => 62542 (trunk), 62543 (fixes)
2020-01-13 12:57 wp LazTarget - => 2.0.8
2020-01-13 12:57 wp Widgetset WinCE => WinCE
2020-01-13 12:57 wp Note Added: 0120401