There is a question at the end.
Background:
I'm putting up a Web-corner with ATL & MFC for other (gcc for now)
Compilers. It will include tools, links, documentation, example
makefiles, and so on to let people take an MSVC project and compile it
under GCC. (+Winelib on other than windows platforms)
My first release target is Windows/ReactOS MinGW-PE. What I did is
take the work I've done on Linux and port it back to MinGW. At first, as
I expected, it did not work at all. So what I did without hesitation is
fetch the Wine headers set, + (yes) wine-msvcrt. Completely removed
MinGW originally supplied headers put Wine on the Include path, and
voila It was compiling Just like on Linux. (Well it didn't link, than it
didn't run, because of the weak symbols thing but I fixed all that). I
find 3 things bad about MinGW headers. (Please don't take this as flame.
I have all the admiration for all involved and no offense is intended)
1) MinGW header-set are Evil - Because they are ugly, with this, no
variables names, and all this style for machines guide. This I already
carry for 10 years so here it is off my chest.
2) Win32 is not complete - I would say that MFC and ATL/WTL are a very
good exercise for the completeness of the Win32 API. Well the wine stuff
have every thing we need, MinGW does not
3) msvcrt - msvcrt compatibility is far from satisfactory on MinGW.
Wine, since they had to re-implement msvcrt.dll had to have all these
funny MS permutations of the c run time. Compiling on MinGW is almost
like using wine without MBCS defined. MinGW headers are mainly derived
from GCC c-runtime, with a few adjustments for the -mno-cygwin mode. But
they are greatly missing all the esoteric stuff that is needed by MFC
and ATL. Wine is perfect, thanks to CodeWeavers, need to run all these
MFC apps out there.
4) (I know I said 3) It is time, that all projects collaborate on ONE
set of headers and ReactOS is the bridge to that - It is a long time do,
that Wine's Set of headers are adopted by all projects. MinGW
concentrates on PE gcc compilers, and pass the Win32 project to wine.
Wine will release a headers only package for every body to use. (This is
what I'll do on first release of my project)
[Question to the ReactOS team]
The windres utility is insufficient for Most of the projects out
there. For example one reason my project is not already on the air. (And
hence my post) is that it refuses to compile my Toolbar resource tag.
(And what is an MFC app with out a toolbar).
I have seen some work done on porting wrc to PE is that work done and
will you have a pre-compiled binary package for use to use on
windows/ReactOS. Same applies to widl. ReactOS should adopt all these
Wine tools as part of their regular tools portfolio. MinGW should adopt
Wine's / ReactOS's leadership on all these technologies and supply-link
to them by default. Go duplicate all these goodies the wine guys are
preparing for us with widl.
Again guys please let the passed be gone. And put our differences behind
us. There are grate things happening, clearly Wine is the Leader here,
lets do this sooner than later. Dimi I need your help here
Free Life
Boaz