1. 18

  2. 7

    Calling a non-portable (at least not to Apple Watches, Raspberry Pi, and microcontrollers) Windows API through a superficial .NET shim doesn’t sound like .NET everywhere since you don’t actually use any of it, more like a complicated way to build a PE executable.

    It is still a fun hack though.

    1. 2

      The C# program is still running though, no? It’s still written in C#, and compiled to a native EXE with the .NET tool chain.

    2. 3

      Did he just reinvented the wheel HX Extender?

      1. 2

        I don’t think so, but thanks for the link. He’s using Win32s which provides a Win32-to-Win16 wrapper layer for GUI processes. AFAIK though, command line applications weren’t handled at all - Windows 3.x can run DOS processes, but that imposes things like memory limits, and it can use a DPMI server to provide more memory, but the DOS processes are still DOS, with no API compatibility with Win32.

        There was exactly one version of the Visual C++ 32 bit compiler that I know of that shipped with a proprietary form of this, which allowed it to run under Windows 3.x for the purpose of generating Win32s applications. Because it’s a PE file, it natively ran under 32 bit Windows and used its own stub loader to run under DOS. That looked pretty cool at the time. It’s good to know somebody made a free version of it.