Skip to content

Converting Executables

Yaroslav Kibysh edited this page Apr 8, 2024 · 7 revisions

To run Windows CE executables in a Win32 environment (detailed here) you have to convert the executable and related libraries by changing the subsystem number to Win32 GUI

The list of tools to change subsystem

SubsystemTool (recommended)

  • Part of Windows CE Compatibility Layer (our own tool)
  • Supports directories and different subsystems
  • Source code, Binaries
  • Usage:
    • SubsystemTool [path] [subsystem number/name (optional)]
    • path can be a directory or single file
    • subsystem can be wince, win32gui, win32cui or any number
    • shows the output with the previous value and new

Additional: subsystem constants

Constant Name Value Description
IMAGE_SUBSYSTEM_UNKNOWN 0 Unknown subsystem
IMAGE_SUBSYSTEM_NATIVE 1 No subsystem required (device drivers and native system processes)
IMAGE_SUBSYSTEM_WINDOWS_GUI 2 Windows GUI subsystem
IMAGE_SUBSYSTEM_WINDOWS_CUI 3 Windows CUI (console) subsystem
IMAGE_SUBSYSTEM_OS2_CUI 5 OS/2 CUI (console) subsystem
IMAGE_SUBSYSTEM_POSIX_CUI 7 POSIX CUI (console) subsystem
IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 Windows CE GUI subsystem
IMAGE_SUBSYSTEM_EFI_APPLICATION 10 EFI application
IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 EFI driver with boot services
IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 EFI driver with run-time services
IMAGE_SUBSYSTEM_EFI_ROM 13 EFI ROM image
IMAGE_SUBSYSTEM_XBOX 14 Xbox subsystem
IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 16 Windows boot application