Subject: Re: GNU-Win32 DLL and MSVC++
From: [email-masked] (Jim Van Sciver)

1 Sep 1998 03:43:59 -0700
Message-ID: <[email-masked]>
References: <[email-masked]>
To: [email-masked]
Cc: [email-masked]

> Earnie Boyd <[email-masked]> writes:
> An example was given just recently on how to do this.  Please go back
> to the archives and search for `MSVC AND dll'.

Thank you for the reply.  I did a better search (the search engine
Cygnus uses on the GNU-Win32 doesn't work very well) and found the
following information regarding EGCS C++ DLLs and MSVC++.  First,
Mark Becker asked my exact question:

>> Mark Becker ([email-masked]) writes:
>> How do I manage to link an egcs-(or gcc) built dll (here: libX11.dll)
>> to a C++-mainprog (compiled with MSVC++-5.0) with the MSVC linker ?

> jeffdb ([email-masked]) writes:
> Bad news, this is impossible for several reasons.
> 
> 1. binary incompatibility between MS/CYGNUS pei libraries (currently being worked on :)
> 2. name mangeling/abi incompatibility between MS/gnu C++ (according to the gnu G++ FAQ this is unresolvable
>     since MS's abi is proprietary although I seem to recall having heard that it is being worked on)
> 3. dll startups for cygwin32 dlls need to initialize the cygwin32 posix layer, which
>     means using the cygwin32 mainCRTStartup, which you can't with link.exe because AFAIK
>    it can't manufacture the __data_start__ __text_start__ etc. symbols in the proper places.

This is disappointing.  I was hoping to be able to create MSVC++ compatible
DLLs from legacy C++ code developed with EGCS.  Now I'm forced into porting
over to MSVC++ instead.  Drat, drat, drat.

The above question/reply should definitely be added to the FAQ.
I'm cc'ing the gnu-win32 list to make this known.

Thanks again for the prompt and helpful reply.

Jim Van Sciver
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".