On 11/08/2014 08:25, Dimitry Sibiryakov wrote:
> 11.08.2014 13:02, Adriano dos Santos Fernandes wrote:
>> The current approach of guessing the C++ vtable is compatible between
>> compilers (be it or not about COM classes) is a hack at least for
>> non-Windows platforms who may use different and non-standard ABIs.
>    There is nothing to be guessed about. Most compilers have internal formats 
> documented. 
> For Delphi VMT is documented here: 
> http://docwiki.embarcadero.com/RADStudio/XE4/en/Internal_Data_Formats#Class_Types
>    As you can see Delphi class layout match C++ class layout, so Delphi can 
> call methods 
> of C++ classes as long as it doesn't try to something more like class casting 
> of object 
> destroying.
>    For FPC class layout doesn't match C++ layout, but CORBA-style interface - 
> does.
>
>    If you add QueryInterface() method, then binary layout will match both 
> Delphi interface 
> and FPC standard interface.
>    I can't remember who did API translation for UIB, but he made a mistake 
> using classes 
> for declaration.
>
If you add QueryInterface it should be for QueryInterface purposes, but
as you write, it will be a method that only Delphi or FPC will understand.

And QueryInterface approach is very very ugly approach to OOP.


Adriano


------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to