But the user won't be declaring _mangled_main as extern "C", so it'll still be
a regular C++ symbol.
But if you have extern "C" in declaration, and user make function with
same signature (name + arguments) compiler will use C linking for
it.
And you'd need three, if not four, cppmain.cpp files.
int main() C++ symbol
int main(int argc) Why would someone this, is it in standard ?
int main(int argc, char **argv); // C symbol (via extern "C")
int main(int argc, char **argv, char **argz); // Not supported by allegro's _WinMain
I had this idea:
alwin.h: define main = _mangled_main, install_allegro to use
_force_main_linking, extern "C" _mangled_main(int, char **) C++ only
wmain.c: have WinMain call _mangled_main (C symbol)
This will cover C's main(void), main(int, char **) and C++'s main(int,
char **). About C++'s main(void) it can be solved in two ways: C++
source with dummy _mangled_main or by forcing user to use main(int,
char **) when programming in C++.