Skip to content

How it works

Yaroslav Kibysh edited this page Jul 8, 2019 · 2 revisions

COREDLL: CRT & main library

Windows CE Compatibility Layer consists of one library - COREDLL. We usually see different libs and CRT linked to executables in Win32, but in WinCE, COREDLL is both functional library and CRT. The functional side contains (almost?) all Win32 functions, so we don't need to link executable to different libs. As I said before, Windows CE's COREDLL contains Win32 functions, because they are almost identical to the real Win32 on Windows. Hence, our COREDLL is wrapper, it turns usual Windows CE calls into Win32.

Executables

Windows CE uses the same format as Win32 - Portable Executables (PE). The only difference is subsystem - it's a number which is located in PE header and says on which system executable will run (like Windows GUI App, OS/2 CUI Application, Native Program (Driver), etc.). Since Windows CE PEs are almost the same as Win32 GUI, we can (not) simply edit PE header and change subsystem number. If you try to run an original PE, Windows will say that program is not Win32. After manipulations Windows allows to run PEs. Note that all linked and related libraries to executables must be converted in the same way.

Compatibility

Read more about ARM version of WCECL...

WCECL Platform Windows CE ARM Windows CE x86 Comment
ARM ✔️ ✖️ x86 version works on Windows 10 for ARM
x86 ✔️