Tarmo Pikaro tapika@yahoo.com writes:
Other stuff like missing WideCharToMultiByte can be addressed by providing the missing functions in your own separate object file, without changing the source.
I've scanned quite many unicode libraries and concluded of bringing up cutf library alive - that is basically a replacement for WideCharToMultiByte & windows api - uses less call arguments, but can achieve stuff.
My point is that you can write a simple WideCharToMultiByte wrapper on top of your cutf library, and then you don't need to patch dbghelp at all, only to link it against your wrapper.
I would like to head into direction of having only one compilation instead of multiple - https://www.reddit.com/r/cpp/comments/bjgt0j/make_portable_dll_without_secon...
basically replace .so & .dll file format with one centralized file format, which can be run on multiple platforms. (e.g. linux and windows)
Please don't tell me it will be a long way to get there, I know that - but there already exists prototypes who managed to make this happen. I think wine's dbghelp is good place to start from, but we might indeed require native compilers support, need to locate good guys for this job.
The file format is not the interesting part, it's easy to do a PE loader on Linux, or an ELF loader on Windows. You could probably also write a PE<->ELF converter without too much trouble.
The thing is once you have loaded the binary, it's going to call APIs, and these are completely different between platforms. So you need either an abstraction layer to wrap all the APIs, or something like Wine to make the APIs compatible. That's where the real work is.