Running Windows CE executables on Windows

Discuss Windows Phone 7, 8, 10, Windows CE, .Net and Windows Mobile.
Post Reply
Dz3n
Posts: 42
Joined: Wed Jan 24, 2018 3:36 pm
Location: Ukraine

Running Windows CE executables on Windows

Post by Dz3n »

Hello! Using Windows CE Compatibility Layer (WCECL) you can run Windows CE programs in usual Win32 environment. Let me explain.

All Windows CE programs are Portable Executables, which is the same format as in Windows. Hence Windows is able to run Windows CE executables, but we only need a little bit of hAcKiNg. EXE (PE) file has a header, where located Subsystem number. Windows can run any number, but in user mode it's limited to only Win32GUI and Win32CUI (console window). If you try to run another subsystem, Windows will display error message. With help of WCECL SubsystemTool you can change subsystem number of any executable and its related libraries (DLLs) to Win32GUI (or to any desired number). After these easy manipulations you can natively run Windows CE executables on your Windows machine. More about file types and tools to convert you can find in WCECL Wiki.

But subsystem is not the only problem. Programs are using COREDLL.DLL library, which is the part of Windows CE system and can't run on Windows. This library contains all system runtime functions and they are almost the same as in Windows NT. WCECL contains own implementation of COREDLL, which redirects all calls to Windows API and brings the compatibility. Read more in our Wiki!

FAQ
Q: WCECL supports ARM applications?
A: On x86 - no, but WCECL can be compiled for ARM platform and you can run it on Windows 10 ARM or Wine for Android.

Q: It supports Windows XP?
A: Yes, it's the minimal operating system version. SubsystemTool also supports Windows XP. The only problem - there are few calls which are not existing in Windows XP, and I can't fix it, because I use Windows 10 machine.

Q: So it runs programs?
A: Only if all functions used by program are implemented. Currently it ALMOST supports Solitare from Windows CE.

Q: So it runs Solitare from Windows CE?
A: Sadly, but no. We need more debugging and research. Currently it fails on CreateWindowEx function.

Q: When it will run any program correctly?
A: Be patient, because I'm the only one person and it's just my hobby. The project is hosted on GitHub and you can easily help to code.

Q: Will it run Windows CE version X application?
A: We just making functions in WCECL that required by an application. So there's no exact target, but we focus on Windows CE 5.0/6.0 functions.

Q: Microsoft is developing similar thing right now (CEPAL). Is there any difference?
A. Yes. CEPAL is emulating environment to run full Windows CE, when WCECL is not emulating anything and runs any program as native. Hence WCECL is faster than CEPAL.


The project is fully open-sourced and waits for contributors.
Information about contributing and other important things are in Wiki.
GitHub: https://github.com/feel-the-dz3n/wcecl
Made just for fun.

I'm waiting for your questions!
Last edited by Dz3n on Mon Jul 08, 2019 7:18 pm, edited 1 time in total.

Dz3n
Posts: 42
Joined: Wed Jan 24, 2018 3:36 pm
Location: Ukraine

Re: Running Windows CE executables on Windows

Post by Dz3n »

P.S.: I suppose this topic should be in https://www.betaarchive.com/forum/viewforum.php?f=5 but I have no rules to create there..

louisw3
User avatar
Posts: 1490
Joined: Wed Dec 31, 2008 7:29 pm
Location: SE Asia

Re: Running Windows CE executables on Windows

Post by louisw3 »

Sounds interesting. Although I have to ask, what are the killer CE apps?

The CEPC target is more than enough for my CE desires although it is kind of useless at this point in time
"Those who don't understand UNIX are condemned to reinvent it, poorly." – Henry Spencer

GL1zdA
User avatar
Posts: 515
Joined: Thu Dec 03, 2009 3:32 pm
Location: Warsaw, PL

Re: Running Windows CE executables on Windows

Post by GL1zdA »

louisw3 wrote:Sounds interesting. Although I have to ask, what are the killer CE apps?

The CEPC target is more than enough for my CE desires although it is kind of useless at this point in time
The Age of Empires port for Windows Mobile ;). I admire how fateful to the original it is. It's actually hard to recommend killer apps for PDAs, because it was typically a set of:
  • a "better than the built-in" PIM
  • reference apps (the were many dictionary apps based on the best dictionaries, I've used ABBYY with ODE, but Paragon also did a lot of dictionaries)
  • a pocket office
  • e-book reader
  • a media player
  • some utils
  • games (Solitaire ;))
tailored to your specific needs. It was more like apps for phones now - lots of small, not really memorable apps, that simply did one trick, that was useful for you, and did it good. You can look at sites like http://freewarepocketpc.net and see what fits your needs (there was a similar site for PalmOS which I was using during my Palm days: FreewarePalm.com). I don't think there were killer apps like the current Affinity products for the iPad which basically can be a reason to buy an iPad if your workflow can make use of them.
Image

Tootles
User avatar
Donator
Posts: 1016
Joined: Mon Feb 12, 2007 12:50 pm
Location: England

Re: Running Windows CE executables on Windows

Post by Tootles »

Dz3n wrote:Hello! Using Windows CE Compatibility Layer (WCECL) you can run Windows CE programs in usual Win32 environment. Let me explain.

All Windows CE programs are Portable Executables, which is the same format as in Windows. Hence Windows is able to run Windows CE executables, but we only need a little bit of hAcKiNg. EXE (PE) file has a header, where located Subsystem number. Windows can run any number, but in user mode it's limited to only Win32GUI and Win32CUI (console window). If you try to run another subsystem, Windows will display error message. With help of WCECL SubsystemTool you can change subsystem number of any executable and its related libraries (DLLs) to Win32GUI (or to any desired number). After these easy manipulations you can natively run Windows CE executables on your Windows machine. More about file types and tools to convert you can find in WCECL Wiki.

But subsystem is not the only problem. Programs are using COREDLL.DLL library, which is the part of Windows CE system and can't run on Windows. This library contains all system runtime functions and they are almost the same as in Windows NT. WCECL contains own implementation of COREDLL, which redirects all calls to Windows API and brings the compatibility. Read more in our Wiki!

FAQ
Q: WCECL supports ARM applications?
A: On x86 - no, but WCECL can be compiled for ARM platform and you can run it on Windows 10 ARM or Wine for Android.

Q: It supports Windows XP?
A: Yes, it's the minimal operating system version. SubsystemTool also supports Windows XP. The only problem - there are few calls which are not existing in Windows XP, and I can't fix it, because I use Windows 10 machine.

Q: So it runs programs?
A: Only if all functions used by program are implemented. Currently it ALMOST supports Solitare from Windows CE.

Q: So it runs Solitare from Windows CE?
A: Sadly, but no. We need more debugging and research. Currently it fails on CreateWindowEx function.

Q: When it will run any program correctly?
A: Be patient, because I'm the only one person and it's just my hobby. The project is hosted on GitHub and you can easily help to code.

Q: Will it run Windows CE version X application?
A: We just making functions in WCECL that required by an application. So there's no exact target, but we focus on Windows CE 5.0/6.0 functions.

Q: Microsoft is developing similar thing right now (CEPAL). Is there any difference?
A. Yes. CEPAL is emulating environment to run full Windows CE, when WCECL is not emulating anything and runs any program as native. Hence WCECL is faster than CEPAL.


The project is fully open-sourced and waits for contributors.
Information about contributing and other important things are in Wiki.
GitHub: https://github.com/feel-the-dz3n/wcecl
Made just for fun.

I'm waiting for your questions!
The Windows CE SDK can run x86 CE applications on Windows NT 4 and up. That's no use unless you're writing software, though, as barely any x86 CE software was released. The only x86 CE devices were things like like WYSE terminals, and nobody targeted software for those because they were designed to access Windows terminal servers.

Give yours an ARM/SH3 emulator and you'll actually get some interest.
Long days, and pleasant nights.

Dz3n
Posts: 42
Joined: Wed Jan 24, 2018 3:36 pm
Location: Ukraine

Re: Running Windows CE executables on Windows

Post by Dz3n »

Tootles wrote: The Windows CE SDK can run x86 CE applications on Windows NT 4 and up. That's no use unless you're writing software, though, as barely any x86 CE software was released. The only x86 CE devices were things like like WYSE terminals, and nobody targeted software for those because they were designed to access Windows terminal servers.

Give yours an ARM/SH3 emulator and you'll actually get some interest.
I have Windows CE SDK and it can't run Windows CE applications on my x86 device.

C:Amie found some x86 software on HPC Factor:

ArtsSave 1.6
AygShell.dll Stubs [x86]
ButtonBar 1.0
DUGA
eBook Reader
EzDownload 1.15
GDBMce 1.7.3ce
krinput 1.0.1
MBA Calc 4.0.0.3
MDict 3.0
Microsoft .NET Compact Framework 1.0 SP3 for Windows CE 2.11
MilloNotes
nPOPuk 3.04
PocketC Runtime 3.00
PocketC Special Edition (Emulator version) b1.29
PocketTV 0.10.4
POGeo 3.3
PowerTerm CE 6.3.5
PrintCE SDK 4.22
ScrnGrab 1.0.1
Secubox 1.7
Secuwipe 1.1.1
TCPMP 0.66 0.66
TCPMP 0.72 Release Candidate 1 (RC1) 0.72 RC1
Terminal Services Wake-on-LAN 1.0
Total Commander 2.5
Umlaut 1.0
Visual Basic CE Runtimes
vxHpc 2.7.9
vxHpcPlus 2.1.9
vxUtil 2.1.3
WinCE iSCSI Initiator 1.0
Windows CE Task Manager 1.0.0.3
Winwatch 2.3.3
Wordle .95
WR-Tools CPULoad 0.7
WR-Tools Hotkeys 1.0
WR-Tools Resinfo 1.58.246

This list is not so big as ARM software list, but still.
Maybe there's a way how to emulate ARM environment on x86 Windows, but I don't know how exactly.

Tootles
User avatar
Donator
Posts: 1016
Joined: Mon Feb 12, 2007 12:50 pm
Location: England

Re: Running Windows CE executables on Windows

Post by Tootles »

Dz3n wrote:I have Windows CE SDK and it can't run Windows CE applications on my x86 device.

C:Amie found some x86 software on HPC Factor:

ArtsSave 1.6
AygShell.dll Stubs [x86]
ButtonBar 1.0
DUGA
eBook Reader
EzDownload 1.15
GDBMce 1.7.3ce
krinput 1.0.1
MBA Calc 4.0.0.3
MDict 3.0
Microsoft .NET Compact Framework 1.0 SP3 for Windows CE 2.11
MilloNotes
nPOPuk 3.04
PocketC Runtime 3.00
PocketC Special Edition (Emulator version) b1.29
PocketTV 0.10.4
POGeo 3.3
PowerTerm CE 6.3.5
PrintCE SDK 4.22
ScrnGrab 1.0.1
Secubox 1.7
Secuwipe 1.1.1
TCPMP 0.66 0.66
TCPMP 0.72 Release Candidate 1 (RC1) 0.72 RC1
Terminal Services Wake-on-LAN 1.0
Total Commander 2.5
Umlaut 1.0
Visual Basic CE Runtimes
vxHpc 2.7.9
vxHpcPlus 2.1.9
vxUtil 2.1.3
WinCE iSCSI Initiator 1.0
Windows CE Task Manager 1.0.0.3
Winwatch 2.3.3
Wordle .95
WR-Tools CPULoad 0.7
WR-Tools Hotkeys 1.0
WR-Tools Resinfo 1.58.246

This list is not so big as ARM software list, but still.
Maybe there's a way how to emulate ARM environment on x86 Windows, but I don't know how exactly.
Not so big, by a long chalk. There are many thousands of pieces of software for CE on ARM.

The SDK's emulator runs x86 CE software on Windows. I've used it myself, quite a lot over a lot of years.

Use an emulator in the background, maybe QEMU. Or develop your own. Instruction set thunking can't be that much more difficult than API thunking.
Long days, and pleasant nights.

Beta12
User avatar
Posts: 271
Joined: Sat Sep 21, 2013 11:19 am
Location: Poland

Re: Running Windows CE executables on Windows

Post by Beta12 »

Build WinCE for x86 in Platform Builder and run OS on VMware or MS VPC 2007: WinCE 5.0 on x86 CEPC

Dz3n
Posts: 42
Joined: Wed Jan 24, 2018 3:36 pm
Location: Ukraine

Re: Running Windows CE executables on Windows

Post by Dz3n »

Solitaire works.
Image

Dz3n
Posts: 42
Joined: Wed Jan 24, 2018 3:36 pm
Location: Ukraine

Re: Running Windows CE executables on Windows

Post by Dz3n »


Post Reply