GNU-Win32 DLL and MSVC++

Jim Van Sciver jvs@bbn.com
Mon Aug 31 15:55:00 GMT 1998


> Earnie Boyd <earnie_boyd@yahoo.com> 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 (Mark.Becker@neuroinformatik.ruhr-uni-bochum.de) 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 (jeffdbREMOVETHIS@goodnet.com) 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
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list