Quick-and-dirty wrapper that tries to run 32-bit Windows command-line executables on Linux
Go to file
Ryan Burns 635de4fa93
Handle GetCurrentDirectory required buffer size return value (#27)
When the output buffer size is too small, GetCurrentDirectory does
nothing and simply returns the larger required size.

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getcurrentdirectory#return-value

Needed to run Code Warrior 4 mwcc.exe with no arguments, displaying usage/help message.

(Still unable to compile/preprocess with CW4 mwcc.exe)
2022-12-02 10:46:38 +01:00
.github/workflows Build it on focal (#24) 2022-09-25 01:04:29 +09:00
cmake Explicitly link std::filesystem as needed (#14) 2022-07-08 02:02:27 +09:00
dll Handle GetCurrentDirectory required buffer size return value (#27) 2022-12-02 10:46:38 +01:00
test 3 funcs needed for some mwcc compilers (#22) 2022-09-24 23:59:30 +09:00
.dockerignore Add Dockerfile + build action (#3) 2022-06-30 20:42:24 +01:00
.gitignore Add CMakeLists.txt (#8) 2022-07-06 20:03:19 +09:00
CMakeLists.txt 3 funcs needed for some mwcc compilers (#22) 2022-09-24 23:59:30 +09:00
Dockerfile Move docker build back a bit (#25) 2022-09-25 02:02:49 +09:00
LICENSE first commit 2022-06-13 02:20:18 +02:00
README.md Add CMakeLists.txt (#8) 2022-07-06 20:03:19 +09:00
common.h MessageBoxA 2022-07-27 21:27:27 +01:00
files.cpp 3 funcs needed for some mwcc compilers (#22) 2022-09-24 23:59:30 +09:00
files.h File handles 2022-07-04 00:42:47 +02:00
handles.cpp 3 funcs needed for some mwcc compilers (#22) 2022-09-24 23:59:30 +09:00
handles.h 3 funcs needed for some mwcc compilers (#22) 2022-09-24 23:59:30 +09:00
loader.cpp Clean up function resolution a little 2022-07-18 23:02:55 +02:00
main.cpp Fix cmdline backslash escaping 2022-07-31 13:17:14 +02:00

README.md

WiBo

A minimal, low-fuss wrapper that can run really simple command-line 32-bit Windows binaries on Linux - with less faff and less dependencies than WINE.

Don't run this on any untrusted executables, I implore you. (Or probably just don't run it at all... :p)

cmake -B build
cmake --build build
build/wibo

Rough to-do list:

  • Implement more APIs
  • Do something intelligent with Windows HANDLEs
  • Convert paths in environment variables (and the structure of PATH itself, maybe) to Windows format
  • Implement PE relocations rather than just failing unceremoniously
  • Make the PE loader work for DLLs as well in case we ever want to load some

Related projects: