Interfacing with XPCOM

John Reimer terminal.node at gmail.com
Mon Dec 1 06:53:08 PST 2008


Hello Kagamin,

> G++ uses C++ abstract class for nsISupports, so its methods calling
> convention is C++ as implemented by g++:
> 
> http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Compatibility.html
> 


Yes, I had a peek at the XULRunner SDK, and it looked something like you say.

Thank you for the link.  It looks like the most significant details of the 
C++ ABI in this case (for XPCOM to D interfacing) are:

(1) name mangling (which won't be an issue in XPCOM from what I understand)
(2) layout and alignment of virtual tables (*important and effectively handled 
by extern(C++) /IF/ the C++ classes meet the criteria specified in the D 
spec).

It would be nice if extern(C++) were still ported to D 1.0, but the other 
alternative of enabling extern(System) in COM support (instead of extern(Windows) 
) will also work.  Extern(C++) might turn out to be just another alternative 
which would be nice to have.

-JJR





More information about the Digitalmars-d mailing list