On Sun, 30 Jan 2005, Alexey Barkovoy wrote:

> ----- Original Message -----
> From: "Florian Klaempfl" <[EMAIL PROTECTED]>
>
> >> For example "DECLARE_INTERFACE_(IClassFactory, IUnknown)" in C++ is 
> >> expanded
> >> to "struct FAR IClassFactory : public IUnknown", so really public parts of
> >> VMT (with positive offset) are always [should be] compatible. Surely we 
> >> can't
> >> talk about FULL compatibility of classes, but exposing "interfaces" to 
> >> other
> >> languages should be possible.
> >
> > Use raw interfaces for such a purpose.
>
> Problem is here:
>
> >> Problem here is what I'm forced to use some these COM incompatibe
> >> "interfaces" exposed by MS programmers in DirectX API. These interfaces 
> >> look
> >> like real COM interfaces but without IUnknown embedded. In Delphi I can use
> >> them just by creating abstract class just like in C++, but in FPC it's
> >> impossible to do so. And I've seen other reports when people were forced to
> >> use similiar cripped interfaces exposed by C++ programmers. So it's the 
> >> real
> >> problem not just artificial one.
>
> Delphi and FreePascal simplest interfaces already includes IUnknown. So using
> raw interfaces is incompatible here too.

No.
You could try to use CORBA interfaces, they don't have IInterface (or IUnknown) 
as the parent.
There is a compiler switch for this.

Michael.


_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to