Thanks for all responses. Compiler ABI's are incompatible in general, but there was a nice exception in the windows world with interfaces (ie classes with only pure virtual functions) which were indeed working under most windows compilers, as the COM/RPC had somewhat established a standard.
With 32-bit MinGW and MSVC, this was at least working, as both were implementing the class as a plain linear vtable, and as it was possible to specify the calling convention. It seems that with 64-bit we still have compatible vtables, but the calling convention seem to be different, and there is no way to change it in either compiler. That's sad : with 32bits, there were pseudo-standards such as fastcall, stdcall and cdecl. 64bit seems a dark age for calling conventions :( Etienne 2015-06-17 18:38 GMT+02:00 Ruben Van Boxem <[email protected]>: > 2015-06-17 18:21 GMT+02:00 lh_mouse <[email protected]>: > >> g++ and clang++ use Itanium ABI while MSVC uses some M$ specific, >> unpublished ABI. Hence it is not surprising that they are incompatible with >> each other. >> >> > Clang actually aspires to use MSVC's ABI on Windows, and they're close, if > not already in a useful state right now. > > Ruben > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Mingw-w64-public mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > >
------------------------------------------------------------------------------
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
