Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-Id: <200107131614.f6DGE2w03771@cate1-208.reshall.ou.edu> To: Julian Hall Reply-To: cygwin AT cygwin DOT com Subject: Re: COM DLL with Cygwin C++? In-Reply-To: Your message of "Fri, 13 Jul 2001 11:05:53 BST." <3B4EC800 DOT A0A92DAA AT acris DOT co DOT uk> Date: Fri, 13 Jul 2001 11:14:02 -0500 From: jcast AT cate1-208 DOT reshall DOT ou DOT edu Julian Hall wrote on Fri, 13 Jul 2001 11:05:53 +0100: > I tried to make this work a little while back; unfortunately G++'s > object model seems to be incompatible with MSVC++'s, with the effect > that only COM objects written in C can be compiled with G++. I > think this is due to the name mangling, but there is also a problem > with exception handling. > Jules IIRC, COM uses its own (HRESULT-based) exception handling, so that's not an issue. Furthermore, name mangling has /nothing/ to do with COM; COM lives exclusively at the binary level. The only names COM cares about are the hooks it uses to get your class factory, and I believe they're `extern "C"'. Any incompatibility between COM/MSVC++ and g++ that's relevant here would be in the virtual function ABI, not in the areas you mention. FYI Jon Cast -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/