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