On 10/13/20 5:46 PM, Pierre Lamot wrote:
>>> While I have no clear idea about the cause of the issue, my gut
>>> feeling is that it happens with overloaded functions. In above case:
>>>
>>>     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
>>>     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
>>
>> That's right, overloads like that appear in reversed order in actual
>> vtable. So method with float arg gets higher address.
>>
>
> So, does inverting the declaration order of these methods would do the
> tricks?
> This is quite surprising to declare member functions in different
> order according to the compiler.
It would, yes. We use that for similar cases in Wine, which does not use
C++, making that solution binary compatible.

As I understand it's an c++ abi difference between msvc and g++, or
maybe between msvc and everything else.
>
> Pierre




_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to