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

Reply via email to